Perspective Projection of an Ellipse
Transcription
Perspective Projection of an Ellipse
Perspective Projection of an Ellipse David Eberly Geometric Tools, LLC http://www.geometrictools.com/ c 1998-2015. All Rights Reserved. Copyright Created: March 10, 2015 Contents 1 Introduction 2 2 Elliptical Cones 2 2.1 Right Elliptical Cones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Skewed Elliptical Cones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 General Elliptical Cones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.4 Converting General Cones to Skewed Cones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Projection of the Ellipse to Another Plane 5 1 1 Introduction The standard axis-aligned ellipse in 2D is of the form 2 2 y1 y0 + =1 d0 d1 (1) where d0 > 0 and d1 > 0. The 2D coordinates of points are (y0 , y1 ). In 3D, we can specify an ellipse in a general plane. Let the ellipse center be Ce , which is a point on the plane. Let the plane normal be the unit-length vector Ne . Choose unit-length vectors Ue and Ve so that the set {Ue , Ve , Ne } is a right-handed orthonormal basis; that is, the vectors are unit-length, mutually orthogonal, and Ne = Ue × Ve . The ellipse consists of 3D points Xe = Ce + y0 Ue + y1 Ve = Ce + Je Ye (2) where (y0 , y1 ) is a solution to equation (1). The second equality in equation (2) defines the 3 × 2 matrix Je whose columns are Ue and Ve and defines the 2 × 1 column vector Ye whose rows are the components of (y0 , y1 ). Given an eyepoint E, we want to perspectively project the ellipse onto another plane. That plane has unitlength normal Np and origin point Cp . We may choose the normal so that E is on the side of the plane to which Np is directed; that is, Np · (E − Cp ) > 0. If {Up , Vp , Np } is a right-handed orthonormal set, then points on the projection plane are Xp = Cp + y2 Up + y3 Vp = Cp + Jp Yp (3) The second equality in equation (3) defines the 3 × 2 matrix Jp whose columns are Up and Vp and defines the 2 × 1 column vector Yp whose rows are the components of (y2 , y3 ). Assuming the ellipse is between the eyepoint and the projection plane, the projection is also an ellipse. We will determine a quadratic equation in the components of Yp that define the projected ellipse. 2 Elliptical Cones There are multiple ways to approach the projection problem. The one presented here is based on computing an ellipse as the intersection of an elliptical cone and a plane. The intersection will be represented implicitly by a quadratic equation of Yp . 2.1 Right Elliptical Cones A standard right elliptical cone is represented algebraically as 2 2 2 y2 y0 y1 −1 = + e2 d0 d1 (4) where the cone vertex is located at (0, 0, e2 ) with e2 > 0. The cone vertex is a solution to equation (4). When y2 = 0, the elliptical cone equation reduces to the standard ellipse equation (1). Thus, the standard ellipse points are on the elliptical cone, which means that these points are the intersection of the elliptical cone with the y0 y1 -plane. 2 2.2 Skewed Elliptical Cones The use of the term right elliptical refers to the vector from ellipse origin to cone vertex is perpendicular to the ellipse plane. We can define an elliptical cone generally by allowing the cone vertex to be at a point ¯ = (¯ E e0 , e¯1 , e¯2 ) with e¯2 > 0 and the first two components not necessarily zero. The cone axis passes through ¯ E and the origin (0, 0, 0) but is no longer perpendicular to the ellipse plane. We wish to have an algebraic representation of this cone. Let us first look at a derivation that leads to equation (4). ¯ T Y + c¯, where as a 3-tuple, Y = (y0 , y1 , y2 ). The 3 × 3 matrix A¯ is symmetric, ¯ +B Define Q(Y) = YT AY ¯ is a 3 × 1 vector, and c¯ is a scalar. The right elliptical cone is represented by the quadratic equation B ¯ and c¯. Observe that the choices involve 10 parameters, 6 for A¯ = [¯ ¯ B, Q(Y) = 0 for some choice of A, aij ], 3 ¯ ¯ for B = [bj ], and 1 for c¯. 1. When y2 = 0, Q(Y) = 0 must reduce to the standard ellipse equation. Replacing y2 = 0 in the quadratic equation, h h i a i y0 ¯00 a ¯01 y0 + ¯b0 ¯b1 + c¯ = 0 y0 y1 a ¯01 a ¯11 y1 y1 To obtain the standard ellipse equation, we need a ¯00 = 1/d20 , a ¯01 = 0, a ¯11 = 1/d21 , ¯b0 = 0, ¯b1 = 0, and c¯ = −1. 2. The surface normal at the cone vertex is degenerate, so the gradient must be the zero vector: 0 = ¯ = 2A¯E ¯ + B. ¯ Using the information from item 1 and this constraint, we have a ∇Q(E) ¯02 = −¯ e0 /(¯ e2 d20 ), 2 2 2 2 2 2 ¯ a ¯12 = −¯ e1 /(¯ e2 d1 ), and 2¯ e2 a ¯22 + e¯2 b2 = 2(¯ e0 /d0 + e¯1 /d1 ). ¯ = 0, which implies e¯2 a 3. The cone vertex solves Q(E) ¯2¯b2 = 1 + (¯ e20 /d20 + e¯21 /d21 ). 2 ¯22 + e 4. Items 2 and 3 are solved for a ¯22 = (¯ e20 /d20 + e¯21 /d21 − 1)/¯ e22 and ¯b2 = 2/¯ e2 . We have determined A, B, and c, namely, 1/d20 0 ¯ A= 0 1/d21 −¯ e0 /(¯ e2 d20 ) −¯ e1 /(¯ e2 d21 ) −¯ e0 /(¯ e2 d20 ) −¯ e1 /(¯ e2 d21 ) ¯ , B = e22 (¯ e20 /d20 + e¯21 /d21 − 1)/¯ 0 0 2/¯ e2 , c¯ = −1 (5) Some factorization leads to the equation for the elliptical cone, 2.3 2 2 2 y0 e¯0 y2 y1 e¯1 y2 y2 −1 = − + − e¯2 d0 d0 e¯2 d1 d1 e¯2 (6) General Elliptical Cones In the most general case, the ellipse is not necessary in a coordinate-axis plane. Equation (2) is the equation for ellipse points, where (y0 , y1 ) solves equation (1). We want to determine A, B, and c for which Q(X) = 0 implicitly defines the elliptical cone with vertex E and contains the specified ellipse points Xe . 3 First, the ellipse points must satisfy 0 = Q(X) = XT AX + BT X + c, 0 = T XT e AXe + B Xe + c = (Ce + Je Ye ) A (Ce + Je Ye ) + BT (Ce + Je Ye ) + c T T T T YT Ye + CT e Je AJe Ye + Je (B + 2ACe ) e ACe + B Ce + c = T (7) Because Ye is a solution to the standard ellipse equation, T JeT AJe = Diagonal(1/d20 , 1/d21 ), JeT (B + 2ACe ) = (0, 0), CT e ACe + B Ce + c = −1 (8) which is a set of 6 linear equations in the unknowns. Second, the gradient of Q must be the zero vector at the cone vertex, ∇Q(E) = 2AE + B = 0 (9) which is a set of 3 linear equations in the unknowns. Third, the cone vertex is a solution to the quadratic equation, Q(E) = ET AE + BT E + c = 0 (10) which is 1 linear equation in the unknowns. Altogether we have 10 linear equations in the 10 unknowns, allowing us to use a linear system solver to obtain the solution. 2.4 Converting General Cones to Skewed Cones Alternatively, we may translate the ellipse center to the origin and then rotate the ellipse plane into a coordinate plane, thus transforming the problem to the one we know has the representation in equation (6). Let Re = [Ue Ve Ne ] be the rotation matrix whose columns are the right-handed orthonormal basis mentioned in the introduction. A point X in the current coordinate system is related to a point Y in the coordinate system of the skewed cone via the transformations X = Ce + Re Y, Y = ReT (X − Ce ) (11) ¯ = RT (E − Ce ) = (¯ The eyepoint E is transformed to an eyepoint E e0 , e¯1 , e¯2 ). Equation (6) provides the e ellipse representation 2 2 2 y0 e¯0 y2 e¯1 y2 y1 y2 −1 = − − + (12) e¯2 d0 d0 e¯2 d1 d1 e¯2 In summary, the vertex of the general elliptical cone is E. The ellipse consists of points Xe = Ce + y0 Ue + ¯ = RT (E − Ce ) and Re = [Ue Ve Ne ]. y1 Ve , where (y0 , y1 ) is a solution to equation (12) with E e For later use, we require the quadratic equation in the transformed coordinate system, 0 = XT AX + BT X + c T (Ce + Re Y) A (Ce + Re Y) + BT (Ce + Re Y) + c T T = YT ReT ARe Y + ReT (B + 2ACe ) Y + CT e ACe + B Ce + c = = ¯ T Y + c¯ ¯ +B YT AY 4 (13) ¯ and the scalar c¯; that is, ¯ the 3 × 1 vector B, where the last equality defines the 3 × 3 matrix A, ¯ = RT (B + 2ACe ), c¯ = CT ACe + BT Ce + c A¯ = ReT ARe , B e e (14) ¯ and c¯ are constructued using equation (5). This determines the coefficients of the X-quadratic; ¯ B, where A, ¯ e = RT Ce ; then define C e ¯ − 2A¯C ¯ e ), c = C ¯ T A¯C ¯e − B ¯ TC ¯ e + c¯ ¯ eT , B = Re (B A = Re AR e 3 (15) Projection of the Ellipse to Another Plane We now have a representation of the general elliptical cone that contains the eyepoint E and the user-specified ¯ and c¯ ¯ B, ellipse: XT AX + BT X + c = 0, where A, B, and c are defined by equation (15). The quantities A, ¯ = RT (E − Ce ) in the skewed ellipse equation (5). are determined using E e We have the projection plane, whose origin is the point Cp and unit-length normal is Np , and a right-handed orthonormal basis {Up , Vp , Np } that may be used to represent points relative to this plane. Assume that this projection plane intersects the cone in a closed curve, which is necessarily an ellipse. The plane points are specified by equation (3). To compute the intersection of cone and plane, substitute the plane points into the quadratic equation for the elliptical cone, 0 = T XT p AXp + B Xp + c = = (Cp + Jp Yp ) A (Cp + Jp Yp ) + BT (Cp + Jp Yp ) + c T T T T Yp + CT YT p ACp + B Cp + c p Jp AJp Yp + Jp (B + 2ACp ) = ˆ ˆ ˆ YT p AYp + B Yp + c T (16) T ˆ and cˆ; that is, ˆ B, where the last equality defines A, ˆ = J T (B + 2ACp ), cˆ = CT ACp + BT Cp + c Aˆ = JpT AJp , B p p (17) The equation for the projected ellipse may be factored into T (Yp − K) M (Yp − K) = 1, (18) ˆ ˆ T Aˆ−1 B/4 ˆ − cˆ). To obtain axis vectors and extents, you may apply ˆ B and M = A/( where K = −Aˆ−1 B/2 T an eigendecomposition of M = RDR . The columns of R are the axis vectors and the reciprocals of the diagonal entries of D are the squared extents. 5 The outline of the algorithm is listed next. 1. Inputs: (a) Eyepoint E. (b) Ellipse plane containing ellipse center Ce , unit-length normal Ne , and unit-length ellipse axes Ue and Ve . The matrix Re = [Ue Ve Ne ] is a rotation matrix. Ellipse axis lengths d0 (associated with Ue ) and d1 (associated with Ve ). Define Je = [Ue Ve ]. The ellipse points are Xe = Ce + Je Ye 2 2 with YT e Diagonal(1/d0 , 1/d1 )Ye = 1. (c) Projection plane with origin Cp , unit-length normal Np , and vectors Up and Vp that span the plane. The matrix Rp = [Up Vp Np ] is a rotation matrix. Define Jp = [Up Vp ]. The projected ellipse points are Xp = Cp + Jp Yp , and the goal is to determine a quadratic equation in Yp that represents this ellipse. 2. Compute: ¯ = RT (E − Ce ) = (¯ ¯ e = RT Ce . (a) E e0 , e¯1 , e¯2 ), C e e ¯ ¯ (b) From equation (5) compute A = [¯ aij ], B = [¯bj ], and c¯: a ¯00 = 1/d20 , a ¯11 = 1/d21 , a ¯01 = a ¯10 = 0, a ¯02 = a ¯20 = −¯ e0 /(¯ e2 d20 ), a ¯12 = a ¯21 = −¯ e1 /(¯ e2 d21 ), a ¯22 = (¯ e20 /d20 + e¯21 /d21 − 1)/¯ e22 , ¯b0 = 0, ¯b1 = 0, ¯b2 = 2/¯ e2 , c¯ = −1 (c) From equation (15) compute A, B, and c: ¯ − 2A¯C ¯ e ), c = C ¯ T A¯C ¯e − B ¯ TC ¯ e + c¯ ¯ eT , B = Re (B A = Re AR e ˆ and cˆ: ˆ B, (d) From equation (17) compute A, ˆ = J T (B + 2ACp ), cˆ = CT ACp + BT Cp + c Aˆ = JpT AJp , B p p 3. Outputs: (a) The quadratic equation ˆ ˆ YT ˆ p AYp + BYp + c that defines the projected ellipse. (b) The factored equation T (Yp − K) M (Yp − K) = 1, ˆ and M = A/( ˆ T Aˆ−1 B/4 ˆ − cˆ). ˆ B where K = −Aˆ−1 B/2 (c) Eigendecomposition RDRT = M , where the columns of R are the projected ellipse axis vectors and D = Diagonal(1/λ20 , 1/λ21 ). The projected ellipse axis lengths are λ0 and λ1 . 6