Search code examples
geometryprocessingp5.jstriangle

How to calculate coordinates of 6 point of intersection between a circle and a equilateral triangle?


I know of an equilateral triangle the center (cx,cy) and the radius (r) of a blue circle which circumscribed it.

If I draw a green circle of any radius (radius), assuming the circle is large enough to have this intersection, can I get the coordinates of the 6 intersection points (P1, P2, P3...)?

Text

I'm looking for P5JS/processing but any other clue can help me...

Thank you in advance


Solution

  • Distance from the center to top point is r.
    Distance from the center to the lowest triangle side is r/2 (median intersection point is center, they are divided in 1:2 ratio).
    Horizontal distance from cx to p4 (and p5) is (Pythagoras' theorem)

    dx = sqrt(radius^2 - r^2/4)
    

    So coordinates of p4 and p5 are (relative to center)

    p4x = dx
    p4y = r/2
    p5x = -dx
    p5y = r/2
    

    Other points might be calculated using rotation by 120 degrees

    p2x = p4x*(-1/2) - p4y*(sqrt(3)/2)
    p2y = p4x*(sqrt(3)/2) + p4y*(-1/2)
    

    and so on.

    And finally add cx,cy to get absolute coordinates