Given: two planes ε i : n → i ⋅ x → = d i , i = 1 , 2 , n → 1 , n → 2 {\displaystyle \varepsilon _{i}:\quad {\vec {n}}_{i}\cdot {\vec {x}}=d_{i},\quad i=1,2,\quad {\vec {n}}_{1},{\vec {n}}_{2}} linearly independent, i.e. the planes are not parallel.
Wanted: A parametric representation x → = p → + t r → {\displaystyle {\vec {x}}={\vec {p}}+t{\vec {r}}} of the intersection line.
The direction of the line one gets from the crossproduct of the normal vectors: r → = n → 1 × n → 2 {\displaystyle {\vec {r}}={\vec {n}}_{1}\times {\vec {n}}_{2}} .
A point P : p → {\displaystyle P:{\vec {p}}} of the intersection line can be determined by intersecting the given planes ε 1 , ε 2 {\displaystyle \varepsilon _{1},\varepsilon _{2}} with the plane ε 3 : x → = s 1 n → 1 + s 2 n → 2 {\displaystyle \varepsilon _{3}:{\vec {x}}=s_{1}{\vec {n}}_{1}+s_{2}{\vec {n}}_{2}} , which is perpendicular to ε 1 {\displaystyle \varepsilon _{1}} and ε 2 {\displaystyle \varepsilon _{2}} . Inserting the parametric representation of ε 3 {\displaystyle \varepsilon _{3}} into the equations of ε 1 {\displaystyle \varepsilon _{1}} und ε 2 {\displaystyle \varepsilon _{2}} yields the parameters s 1 {\displaystyle s_{1}} and s 2 {\displaystyle s_{2}} .
P : p → = d 1 ( n → 2 ⋅ n → 2 ) − d 2 ( n → 1 ⋅ n → 2 ) ( n → 1 ⋅ n → 1 ) ( n → 2 ⋅ n → 2 ) − ( n → 1 ⋅ n → 2 ) 2 n → 1 + d 2 ( n → 1 ⋅ n → 1 ) − d 1 ( n → 1 ⋅ n → 2 ) ( n → 1 ⋅ n → 1 ) ( n → 2 ⋅ n → 2 ) − ( n → 1 ⋅ n → 2 ) 2 n → 2 . {\displaystyle P:{\vec {p}}={\frac {d_{1}({\vec {n}}_{2}\cdot {\vec {n}}_{2})-d_{2}({\vec {n}}_{1}\cdot {\vec {n}}_{2})}{({\vec {n}}_{1}\cdot {\vec {n}}_{1})({\vec {n}}_{2}\cdot {\vec {n}}_{2})-({\vec {n}}_{1}\cdot {\vec {n}}_{2})^{2}}}{\vec {n}}_{1}+{\frac {d_{2}({\vec {n}}_{1}\cdot {\vec {n}}_{1})-d_{1}({\vec {n}}_{1}\cdot {\vec {n}}_{2})}{({\vec {n}}_{1}\cdot {\vec {n}}_{1})({\vec {n}}_{2}\cdot {\vec {n}}_{2})-({\vec {n}}_{1}\cdot {\vec {n}}_{2})^{2}}}{\vec {n}}_{2}\ .}
Example: ε 1 : x + 2 y + z = 1 , ε 2 : 2 x − 3 y + 2 z = 2 . {\displaystyle \varepsilon _{1}:\ x+2y+z=1,\quad \varepsilon _{2}:\ 2x-3y+2z=2\ .}
The normal vectors are n → 1 = ( 1 , 2 , 1 ) ⊤ , n → 2 = ( 2 , − 3 , 2 ) ⊤ {\displaystyle {\vec {n}}_{1}=(1,2,1)^{\top },\ {\vec {n}}_{2}=(2,-3,2)^{\top }} and the direction of the intersection line is r → = n → 1 × n → 2 = ( 7 , 0 , − 7 ) ⊤ {\displaystyle {\vec {r}}={\vec {n}}_{1}\times {\vec {n}}_{2}=(7,0,-7)^{\top }} . For point P : p → {\displaystyle P:{\vec {p}}} , one gets from the formula above p → = 1 2 ( 1 , 0 , 1 ) ⊤ . {\displaystyle {\vec {p}}={\tfrac {1}{2}}(1,0,1)^{\top }\ .} Hence
is a parametric representation of the line of intersection.
Remarks:
In any case, the intersection curve of a plane and a quadric (sphere, cylinder, cone,...) is a conic section. For details, see.2 An important application of plane sections of quadrics is contour lines of quadrics. In any case (parallel or central projection), the contour lines of quadrics are conic sections. See below and Umrisskonstruktion.
It is an easy task to determine the intersection points of a line with a quadric (i.e. line-sphere); one only has to solve a quadratic equation. So, any intersection curve of a cone or a cylinder (they are generated by lines) with a quadric consists of intersection points of lines and the quadric (see pictures).
The pictures show the possibilities which occur when intersecting a cylinder and a sphere:
In general, there are no special features to exploit. One possibility to determine a polygon of points of the intersection curve of two surfaces is the marching method (see section References). It consists of two essential parts:
For details of the marching algorithm, see.3
The marching method produces for any starting point a polygon on the intersection curve. If the intersection curve consists of two parts, the algorithm has to be performed using a second convenient starting point. The algorithm is rather robust. Usually, singular points are no problem, because the chance to meet exactly a singular point is very small (see picture: intersection of a cylinder and the surface x 4 + y 4 + z 4 = 1 {\displaystyle x^{4}+y^{4}+z^{4}=1} ).
Main article: Contour line
A point ( x , y , z ) {\displaystyle (x,y,z)} of the contour line of an implicit surface with equation f ( x , y , z ) = 0 {\displaystyle f(x,y,z)=0} and parallel projection with direction v → {\displaystyle {\vec {v}}} has to fulfill the condition g ( x , y , z ) = ∇ f ( x , y , z ) ⋅ v → = 0 {\displaystyle g(x,y,z)=\nabla f(x,y,z)\cdot {\vec {v}}=0} , because v → {\displaystyle {\vec {v}}} has to be a tangent vector, which means any contour point is a point of the intersection curve of the two implicit surfaces
For quadrics, g {\displaystyle g} is always a linear function. Hence the contour line of a quadric is always a plane section (i.e. a conic section).
The contour line of the surface f ( x , y , z ) = x 4 + y 4 + z 4 − 1 = 0 {\displaystyle f(x,y,z)=x^{4}+y^{4}+z^{4}-1=0} (see picture) was traced by the marching method.
Remark: The determination of a contour polygon of a parametric surface x → = x → ( s , t ) {\displaystyle {\vec {x}}={\vec {x}}(s,t)} needs tracing an implicit curve in parameter plane.4
The intersection curve of two polyhedrons is a polygon (see intersection of three houses). The display of a parametrically defined surface is usually done by mapping a rectangular net into 3-space. The spatial quadrangles are nearly flat. So, for the intersection of two parametrically defined surfaces, the algorithm for the intersection of two polyhedrons can be used.5 See picture of intersecting tori.
Geometry and Algorithms for COMPUTER AIDED DESIGN, p. 94 http://www.mathematik.tu-darmstadt.de/~ehartmann/cdgen0104.pdf ↩
CDKG: Computerunterstützte Darstellende und Konstruktive Geometrie (TU Darmstadt) (PDF; 3,4 MB), p. 87–124 http://www.mathematik.tu-darmstadt.de/~ehartmann/cdg-skript-1998.pdf ↩
Geometry and Algorithms for COMPUTER AIDED DESIGN, p. 99 http://www.mathematik.tu-darmstadt.de/~ehartmann/cdgen0104.pdf ↩
Geometry and Algorithms for COMPUTER AIDED DESIGN p. 76 http://www.mathematik.tu-darmstadt.de/~ehartmann/cdgen0104.pdf ↩