draftgeoutils.circles_apollonius Namespace Reference

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")