Functions | |
def circleFrom3CircleTangents (circle1, circle2, circle3) | |
def innerSoddyCircle (circle1, circle2, circle3) | |
def outerSoddyCircle (circle1, circle2, circle3) | |
Variables | |
Part = lz.LazyLoader("Part", globals(), "Part") | |
Function Documentation
◆ circleFrom3CircleTangents()
def draftgeoutils.circles_apollonius.circleFrom3CircleTangents | ( | circle1, | |
circle2, | |||
circle3 | |||
) |
Return the circle that is tangent to three other circles.
This problem is called the 'Problem of Appollonius'.
A special case is that of 'Soddy circles'.
To Do
-----
Currently not all possible solutions are found, only the Soddy circles.
* Calc all 6 homothetic centers.
* Create 3 lines from the inner and 4 from the outer h. center.
* Calc. the 4 inversion poles of these lines for each circle.
* Calc. the radical center of the 3 circles.
* Calc. the intersection points (max. 8) of 4 lines (through each
inversion pole and the radical center) with the circle.
* This gives us all the tangent points.
References draftgeoutils.circles_apollonius.innerSoddyCircle(), and draftgeoutils.circles_apollonius.outerSoddyCircle().
◆ innerSoddyCircle()
def draftgeoutils.circles_apollonius.innerSoddyCircle | ( | circle1, | |
circle2, | |||
circle3 | |||
) |
Compute the inner soddy circle for three tightly packed circles.
Original Java code Copyright (rc) 2008 Werner Randelshofer
Converted to python by Martin Buerbaum 2009
http://www.randelshofer.ch/treeviz/
Referenced by draftgeoutils.circles_apollonius.circleFrom3CircleTangents().
◆ outerSoddyCircle()
def draftgeoutils.circles_apollonius.outerSoddyCircle | ( | circle1, | |
circle2, | |||
circle3 | |||
) |
Compute the outer soddy circle for three tightly packed circles.
Original Java code Copyright (rc) 2008 Werner Randelshofer
Converted to python by Martin Buerbaum 2009
http://www.randelshofer.ch/treeviz/
Either Creative Commons Attribution 3.0, the MIT license,
or the GNU Lesser General License LGPL.
Referenced by draftgeoutils.circles_apollonius.circleFrom3CircleTangents().
Variable Documentation
◆ Part
draftgeoutils.circles_apollonius.Part = lz.LazyLoader("Part", globals(), "Part") |