###### Descriptions and Examples for the POV-Ray Raytracerby Friedrich A. Lohmüller     Elementary Geometry for Raytracing
Italiano Français Deutsch Home
- POV-Ray Tutorial

- Geometrical Basics
for Raytracing

Right-angled Triangle
Pythagorean Theorem
Trigonometry Basics
Law of cosines
Equilateral Triangle
Regular Polygon
Polyhedron
Tetrahedron
Octahedron
Cube & Cuboid
Dodecahedron
Icosahedron
Cuboctahedron
Truncated Octahedron
Rhombicuboctahedron
Truncated Icosahedron
Circles
Tangent Circles
Internal Tangents
External Tangents

- Geometric 3D Animations

## An Internal Tangent of two CirclesIn the following we write for the square root of a number the expression "sqrt(NUMBER)" and "abs(NUMBER)" for |NUMBER|, conforming to the syntax used in POV-Ray.Note: Here objects in 2D geometry are represented by 3D shapes in the xy-plane. Therefore all coordinates must have the z-components zero! ( <?,?,0>)

 We want an internal tangent to two circles                 from T1 to T2, as shown in the opposite image. Circle 1: M1 = , r1. Circle 2: M2 = , r2. An internal tangent is parallel to a tangent from the center of the smaller circle (here: M2) to a other circle around the center of the bigger circle (M1) but with the radius r1+r2. --------------------       For the calulation of the point S we have to calculate the sides of the triangle (M2,M1,S). d(M1,S) = r1+r2 . According the Pythagorean Theorem we can calculate: d(M1,M2) = sqrt((x2-x1)2+(y2-y2)2) . So the third side (again with the Pythagorean Theorem): d(M2,S) = sqrt( d(M1,S)2+d(M1,M1)2) The angle between the direction of (M1,M2) and the x-direction we can find with trigonometric functions. If x1 < x2 we have   α = abs(degrees( atan ((y2-y1)/(x2-x1))). else:     α = 180° - abs(degrees( atan ((y2-y1)/(x2-x1))), Then we can calulate β and γ as follows:   β = abs( degrees( asin( d(M1, S ) / d(M1,M2) ) )) .   γ =   α -   β . The position of T1:   xT1 = x1 - r1·cos( Angle(M1S) ).   yT1 = y1 - r1· sin( Angle(M1S) ). The position of T2:   xT2 = x2 + r1·cos( Angle(M1S) ).   yT2 = y2 + r1· sin( Angle(M1S) ). Internal tangent of two circles rendered with POV-Ray
Note: To avoid any collision with built-in identifiers and reserved words in POV-Ray, it's strongly recommanded to use only words beginning with capital letters for all identifiers of variables declared by the user,
i.e. use "R1" instead of "r1" and use "Y2" instead of "yM2".
 ```#local X1= 0.40; #local Y1= 0.80; #local R1= 0.20; #local X2= 0.64; #local Y2= 0.15; #local R2= 0.15; #local M1 = ; #local M2 = //------------------------------------------------ #local M_Dist = sqrt(pow(X2-X1,2)+pow(Y2-Y1,2)); #if ( X1 < X2) #local Alpha = abs( degrees( atan((Y2-Y1)/(X2-X1)))); #else #local Alpha = 180-abs(degrees(atan((Y2-Y1)/(X2-X1)))); #end #local Beta = abs(degrees(asin((R1+R2)/M_Dist))); #local Gamma = Alpha - Beta; #local T1 = M1-<(R1)*cos( radians(Gamma)), (R1)*sin( radians(Gamma)),0>; #local T2 = M2+<(R2)*cos( radians(Gamma)), (R2)*sin( radians(Gamma)),0>;```
The calulation of the tangent from T1 to T2 in POV-Ray

For what can we use this geometry?
Here some examples:
We can consider the lower circle as a cross-section of a torus and the upper circle as a torus to subtract from the yellow cylinder:

:  © Friedrich A. Lohmüller, 2010 http://www.f-lohmueller.de 