Run
Extract SVG
Help
ForGe Input
Examples:
Oriented triangle
Regular heptagons
Halving a triangle
A case of intersection
Intersecting circles
Circum- and incircles
The Euler line
The Morley triangle
Desargues' theorem
Quadrilateral centres
Butterfly theorem
Sangaku
Tangents to two circles
Radicals
Monge's circle theorem
Letter Z
Dissection
Sphinx tiling
Lemoine point
Affine decomposition
TIY
Output
" The sides are oriented A→B, B→C, and C→A, and angles AB→AC, BC→BA, and CA→CB. " In order to reverse the orientation of ∆ABC, try changing e.g. A to 50,0. A: 50,60; B: 20,30; C: 100,30 " any three non-collinear points a: B_C; b: C_A; c: A_B " vector sides r: 10 #show ,(),( + ,("line,A,B,.5),("line,B,C,.5),("line,C,A,.5) + ,("arc,A,A+r**c,c@-b,1) + ,("arc,B,B+r**a,a@-c,1) + ,("arc,C,C+r**b,b@-a,1) + ,("label,"A,A+(0,.9)) + ,("label,"B,B+(-2.3,-2)) + ,("label,"C,C+(2.5,-2)) + )
" Three ‘regular’ heptagons (only one of them being regular in the widely accepted sense). A: 40,0; n: 25 " vertex (any point) and side length B: A+(n,0) " the next vertex φ: 360/7 C: B+A_B@φ " the rest of the vertices, each one from the previous two D: C+B_C@φ " ... E: D+C_D@φ " ... F: E+D_E@φ " ... G: F+E_F@φ " ... #show ,,("s,.5),(,(,,("s,(),(),"'mediumseagreen),,("chain,'(),A,D,G,C,F,B,E)) + ,(,,("s,(),(),"'red),,("chain,'(),A,C,E,G,B,D,F)) + ,(,,("s,(),(),"'blue),,("chain,'(),A,B,C,D,E,F,G)))
" Given a triangle ABC and a vector u, construct the unique line segment KL with end points " on the sides of ∆ABC which cuts ∆ABC into halves of equal area and is the same direction as u. A: 10,0; B: 100,0; C: 40,50 u: @45 d₁: u×A_B; d₂: u×B_C; d₃: u×C_A p: (,0,1+(|d₁<|d₂)) / (1 + (d₂=0 | d₁<0 ≠ d₂>0)) p: (,p,3+(|d₂<|d₃)) / (1 + (d₃=0 | d₂<0 ≠ d₃>0)) p: (,p,5+(|d₃<|d₁)) / (1 + (d₁=0 | d₃<0 ≠ d₁>0)) t: (,(C,A,B),(A,C,B),(A,B,C),(B,A,C),(B,C,A),(C,B,A))/p A': t/1; B': t/2; C': t/3 a: B'_C'; c: A'_B' k: ((a×u)/(u×c)/2)^/2; l: 1/2/k K: B'-k*c; L: B'+l*a s: (,(K,L),(L,K))/(1+(K_L·u<0)) K: s/1; L: s/2 #show ,(),( + ,("chain,"c,A,B,C) + ,("point,(A+B+C)/3) + ,(,,("s,.4,(),"'red),(,("line,K,L,1),("point,K),("point,L))) + ,("label,"A,A+(-2.5,-2)) + ,("label,"B,B+(2.6,-2)) + ,("label,"C,C+(-.1,1.2)) + )
" K is a point on the line BC, its location being specified by the λ parameter. " L is a point of intersection of the line AK with ◦ABC. " Ω is the point on ◦ABC such that AΩ∥BC, thus Ω differs from any possible L. " L's and Ω's locations are computed using simple formulae. " L ≠ A unless AK is tangent to ◦ABC. " Ω ≠ A unless AB = AC. A: 35,55; B: 15,20; C: 75,20 " any three non-collinear points λ: 1.4 " any number to position K along BC a: B_C; b: C_A; c: A_B " vector sides K: B+λ*a; AK: A_K L: K+λ*(1-λ)*(|a/|AK)^2*AK Ω: A+*a*(c-b)**a O: (B+C-b·c/(b×c)*⊥a)/2 " circumcentre: only needed for drawing ◦ABC #show ,(),( + ,(,,("s,.15,(0,(,.9,1))),,("iline,B,C)) + ,(,,("s,.25,(),"'grey),(,("iline,A,K),("iline,A,A+a))) + ,("circle,O,|A_O) + ,("chain,'(),A,B,C) + ,("point,K),("point,L),("point,Ω) + ,("label,"A,A+(.5,1)) + ,("label,"B,B+(-2,-4.2)) + ,("label,"C,C+(1.8,-4.2)) + ,("label,"K,K+(-.5,-4.3)) + ,("label,"L,L+(2.3,.5)) + ,("label,"Ω,Ω+(.6,1)) + )
" Intersection of circles. " The points P and Q of intersection are respectively on the right and left from C₁C₂. C₁: 25,20; r₁: 27 " centre and radius 1 C₂: 75,25; r₂: 35 " centre and radius 2 u: C₁_C₂ q₁: r₁/|u; q₂: r₂/|u t: 1+q₁^2−q₂^2; t': (4*q₁^2−t^2)^.5 P: C₁+(t*u−t'*⊥u)/2; Q: C₁+(t*u+t'*⊥u)/2 " points of intersection #show ,(),(,("circle,C₁,r₁) + ,("circle,C₂,r₂) + ,("line,C₁,C₂,1) + ,("line,P,Q) + ,("point,C₁),("point,C₂) + ,("point,P),("point,Q) + ,("label,"P,P+(-.2,-5.7)),("label,"Q,Q+(-.7,2.5)) + )
" A triangle, its circumcircle and incircle. A: 25,25; B: 80,20; C: 45,55 " any three non-collinear points a: B_C; b: C_A; c: A_B " vector sides p: |a+|b+|c " semiperimeter k₁: (Z:(B+C-b·c/(b×c)*⊥a)/2),|A_Z " circumcircle (centre and radius) k₂: A+(|b*c-|c*b)/p,|(a×b)/p " incircle (centre and radius) fig₁: ,,("f,"'palegreen),,("circle+k₁) " the figures with drawing properties attached fig₂: ,,("f,"'yellow),,("chain,'(),A,B,C) " ... fig₃: ,,("f,"'mediumseagreen),,("circle+k₂) " ... #show ,(),(,fig₁,fig₂,fig₃ + ,("point,k₁/1),("point,k₂/1)) " drawing the figures and the two centres '(R = ),k₁/2, '(r = ),k₂/2 " printing the two radii as the value of a sequence
" The Euler line of ∆ABC with some triangle centres on it. A: 20,5; B: 90,5; C: 65,50 " any three non-collinear points a: B_C; b: C_A; c: A_B " vector sides G: (A+B+C)/3 " centroid O: (A+B−a·b/(a×b)*⊥c)/2 " circumcentre H: 3*G−2*O " orthocentre N: (O+H)/2 " centre of the 9-point circle L: 2*O−H " de Longchamps point #show ,(),(,("chain,'(),A,B,C) + ,(,,("s,.5,(),"'blue),,("iline,O,H)) + ,("point,G),("point,O),("point,H),("point,N),("point,L) + ,(,(),(,("label,"A,A+(-2.3,-2.5)) + ,("label,"B,B+(2.6,-2.5)) + ,("label,"C,C+(.3,1)) + ,("label,"G,G+(2.8,-3.6)) + ,("label,"O,O+(-3.3,-1.4)) + ,("label,"H,H+(3.5,-2)) + ,("label,"N,N+(-3,-.8)) + ,("label,"L,L+(2.9,-2)))))
" The grey lines trisect the angles at the vertices of ∆ABC. " The triangle formed by their intersections is always equilateral. " Finding a₁, a₂, b₁, b₂, c₁, c₂ is less cumbersome if the orientation of ∆ABC is known. A: 20,5; B: 90,5; C: 65,50 " any non-collinear points a: B_C; b: C_A; c: A_B " vector sides g: *(a×b) " orientation (sign of [ABC]) t: c@-b; t: (t&(360-t))/6; s: *c+*-b a₁: s@(-g*t); a₂: s@(g*t) " directional vectors at A t: a@-c; t: (t&(360-t))/6; s: *a+*-c b₁: s@(-g*t); b₂: s@(g*t) " directional vectors at B t: b@-a; t: (t&(360-t))/6; s: *b+*-a c₁: s@(-g*t); c₂: s@(g*t) " directional vectors at C A': (b₁×B*c₂−c₂×C*b₁)/(b₁×c₂) " vertices of the Morley triangle B': (c₁×C*a₂−a₂×A*c₁)/(c₁×a₂) " ... C': (a₁×A*b₂−b₂×B*a₁)/(a₁×b₂) " ... #show ,(),( + ,(,,("s,.25,(),"'grey),,("chain,"o,A,C',B,A',C,B')) + ,(,,("f,"'gainsboro),,("chain,"o,A',B',C')) + ,("chain,"o,A,B,C) + ,("label,"A,A+(-2.3,-2.5)) + ,("label,"B,B+(2.6,-2.5)) + ,("label,"C,C+(.3,1)) + )
" Given points A₁, B₁, C₁, A₂, B₂, and C₂, such that neither the first or the last three are " collinear, then there exist lines through the pairs A₁ and A₂, B₁ and B₂, and C₁ and C₂, all " the three having a point in common, if and only if there exist points in common of the pairs " of lines A₁B₁ and A₂B₂, B₁C₁ and B₂C₂, and C₁A₁ and C₂A₂ that share a straight line. " A point in common may be an ordinary or an infinite one, and infinite points share the " infinite line. " The shown configuration is one of the many possible in which the theorem holds. " It may be that e.g. A₁≡A₂, and/or A₁B₁ and A₂B₂ are the same line. X: 0,0; u: 3,.5; v: 2,1; w: 2,3.5 A₁: X+12*u; A₂: X+30*u B₁: X+50*v; B₂: X+13*v C₁: X+17*w; C₂: X+11*w A: ((B₂×C₂)*B₁_C₁-(B₁×C₁)*B₂_C₂)/(B₁_C₁×B₂_C₂) B: ((C₂×A₂)*C₁_A₁-(C₁×A₁)*C₂_A₂)/(C₁_A₁×C₂_A₂) C: ((A₂×B₂)*A₁_B₁-(A₁×B₁)*A₂_B₂)/(A₁_B₁×A₂_B₂) Z: ((B₁×B₂)*A₁_A₂-(A₁×A₂)*B₁_B₂)/(A₁_A₂×B₁_B₂) #show ,(),( + ,(,,("s,(),(),"'darkgrey),(,("iline,A₁,A₂),("iline,B₁,B₂),("iline,C₁,C₂))) + ,(,,("s,(),(0,(,1,1.2)),"'darkgrey),(,("line,B₁,A),("line,B₂,A))) + ,("chain,"c,A₁,B₁,C₁) ,("chain,"c,A₂,B₂,C₂) + ,(,,("s,(),(),"'red),(,("iline,A,B),("point,Z),("point,A) ,("point,B) ,("point,C))) + ,("label,"A₁,A₁+(-.5,-4)),("label,"A₂,A₂+(3,-1.5)) + ,("label,"B₁,B₁+(3,-1.5)),("label,"B₂,B₂+(-1,-4)) + ,("label,"C₁,C₁+(-2,1)),("label,"C₂,C₂+(-2.5,.5)) + )
" G is the areal centre of ABCD, or the centre of mass that is evenly distributed over ABCD. " Notably, ZM:MG = 3:1 holds regardless of ABCD being convex, non-convex or even non-simple. A: 10,0; B: 95,0; C: 70,50; D: 15,23 " any points a: A_C; b: B_D " vector-diagonals K: (A+C)/2; L: (B+D)/2; M: (K+L)/2 " midpoints of diagonals, average of vertices Z: A+A_B×b/(a×b)*a " intersection of diagonals G: M+Z_M/3 " areal centre #show ,(),( + ,(,,("s,(),(),"'darkgrey),(,("line,A,C),("line,B,D),("line,K,L),("line,Z,G))) + ,("chain,"o,A,B,C,D) + ,("point,K),("point,L),("point,M),("point,Z),("point,G) + ,("label,"A,A+(-2,-2)) + ,("label,"B,B+(2.2,-2)) + ,("label,"C,C+(.8,.8)) + ,("label,"D,D+(-2.4,-1)) + ,("label,"K,K+(-3,0)) + ,("label,"L,L+(0,-5)) + ,("label,"M,M+(1,1.5)) + ,("label,"Z,Z+(.2,-5.2)) + ,("label,"G,G+(3.2,-1.7)) + )
" This is a slight generalization of the butterfly theorem. " Let AB, CD, and EF be chords of a circle, all three intersecting at a point P, and let C and E " be in the same half-plane with respect to AB. Furthermore, let K = AB ∩ CF and L = AB ∩ DE. " Then AP ⊎ PL = BP ⊎ PK where u ⊎ v ≝ (u⁻¹ + v⁻¹)⁻¹. " The ‘classic’ butterfly theorem immediately follows: PA = PB ⇒ PK = PL (in fact, PA = PB ⇔ PK = PL). " In the drawing, the points A and B and the oriented distance d from O to AB define an arbitrary circle. " kP ∈ (0,1) determines P by kP = AP:AB. Similarly, kC and kE, being normalized distances along the arc " left of AB, determine the points C and E. Computed from these are D, F, K, and L. A: 30,35; B: 80,35; d: -10 kP: .6; kC: .35; kE: .75 u: A_B O: (A+B)/2+d**⊥u P: A+kP*u v: O_B; r: |v φ: v@O_A C: O+v@((1-kC)*φ) E: O+v@((1-kE)*φ) s: O_P^2-r^2 v: P_C; D: P+s/v^2*v v: P_E; F: P+s/v^2*v v: C_F; K: A+(A_C×v)*u/(u×v) v: E_D; L: A+(A_E×v)*u/(u×v) #show ,(),(,("circle,O,r) + ,(,,("f,"'gainsboro),,("chain,"c,C,D,E,F)),("line,A,B) + ,("point,O),("point,A),("point,B),("point,P) + ,("point,C),("point,D),("point,E),("point,F),("point,K),("point,L) + ,("label,"O,O+(0,-4.8)),("label,"A,A+(-2.7,-.8)),("label,"B,B+(2.9,-.8)),("label,"P,P+(.6,1.7)) + ,("label,"C,C+(-.6,1)),("label,"D,D+(2.5,-3)),("label,"E,E+(1.2,1.2)),("label,"F,F+(-1.7,-4.7)) + ,("label,"K,K+(1.6,-4.6)),("label,"L,L+(-1.4,-4.6)) + )
" Tangents are constructed from the extreme point of each green circle to the other one. " Each yellow circle touches a green one and the respective tangents. " Whatever the green circles, the yellow ones are of equal radii. " In addition, the radius r of the yellow circles is greater than, equals, or is " less than the reciprocal sum (r₁⁻¹ + r₂⁻¹)⁻¹ of the green circles' radii when " the green circles intersect, touch, or are apart. C₁: 30,25; r₁: 25; C₂: 80,25; r₂: 18 " centres and radii of the outer circles k₁: C₁,r₁; k₂: C₂,r₂ " outer circles u: C₁_C₂; A: C₁−r₁@u; B: C₂+r₂@u " extreme points of the green circles r: 2*r₁*r₂/(|u+r₁+r₂) " radius of the inscribed circles u: C₂_A; v: C₁_B k₃: C₁+(r₁−r)**v,r; k₄: C₂−(r₂−r)**v,r " inscribed circles t₁: r₂/u^2; t₂: r₁/v^2 u₁: (u^2−r₂^2)^.5*⊥u v₁: (v^2−r₁^2)^.5*⊥v s₁: A,C₂+t₁*(r₂*u−u₁) " lines of tangency s₂: A,C₂+t₁*(r₂*u+u₁) " ― || ― s₃: B,C₁+t₂*(r₁*v+v₁) " ― || ― s₄: B,C₁+t₂*(r₁*v−v₁) " ― || ― at₁: ,("f,"'palegreen),("s,.4,#t,"'seagreen) " drawing properties for k₁ and k₂ at₂: ,("f,"'yellow),("s,.35,#t,"'darkgoldenrod) " drawing properties for k₃ and k₄ #show ,(),(,(,at₁,(,("circle+k₁),"circle+k₂)) + ,(,at₂,(,("circle+k₃),"circle+k₄)) + ,"line+s₁,"line+s₂,"line+s₃,"line+s₄) " putting it all together
" Circles, common tangents, and painted areas between them. O₁: 20,25; r₁: 15 " two circles outside each other O₂: 80,25; r₂: 25 " ... u: O₁_O₂; q₁: r₁/u^2; q₂: r₂/u^2 r: r₁-r₂; a: r*u; b: (u^2-r^2)^.5*⊥u " finding points of tangency and intersection A₁: O₁+q₁*(a-b); A₂: O₂+q₂*(a-b) " ... D₁: O₁+q₁*(a+b); D₂: O₂+q₂*(a+b) " ... r: r₁+r₂; a: r*u; b: (u^2-r^2)^.5*⊥u " ... B₁: O₁+q₁*(a-b); B₂: O₂-q₂*(a+b) " ... C₁: O₁+q₁*(a+b); C₂: O₂-q₂*(a-b) " ... a: B₁_C₂; b: B₂_C₁; X: (C₂×B₁*b-C₁×B₂*a)/(a×b) " ... d₁: O₁_A₁×*A₁_B₁; d₂: O₂_B₂×*B₂_A₂ d₁': O₁_B₁×*B₁_C₁; d₂': O₂_C₂×*C₂_B₂ #show ,(),( + ,(,,("f,"'orange,.5),(,("circle,O₁,r₁),("circle,O₂,r₂))) + ,("line,A₁,A₂),("line,B₁,C₂),("line,C₁,B₂),("line,D₁,D₂) + ,(,,("f,"'yellow,.5),,("chain,"c,A₂,B₂,-d₂,#f,C₁,D₁,d₁,#t,D₂,C₂,d₂,B₁,A₁,-d₁,#f)) + ,(,,("f,"'orange,.8),,("chain,"c,B₂,C₂,-d₂',#f,B₁,C₁,d₁',#t)) + ,("point,O₁),("point,O₂) + ,("point,A₁),("point,B₁),("point,C₁),("point,D₁) + ,("point,A₂),("point,B₂),("point,C₂),("point,D₂) + ,("point,X) + )
" Radical axes, radical centre, radical circle. O₁: 25,30; r₁: 20 " three circles: centres and radii O₂: 45,50; r₂: 15 " ... O₃: 77,15; r₃: 28 " ... u₁: O₂_O₃; u₂: O₃_O₁; u₃: O₁_O₂ " vectors along central lines C₁: O₂+(1+(r₂/|u₁)^2−(r₃/|u₁)^2)*u₁/2 " points of intersection of radical and central lines C₂: O₃+(1+(r₃/|u₂)^2−(r₁/|u₂)^2)*u₂/2 " ... C₃: O₁+(1+(r₁/|u₃)^2−(r₂/|u₃)^2)*u₃/2 " ... C: ⊥(C₁·u₁*O₁+C₂·u₂*O₂+C₃·u₃*O₃)/(u₂×u₁); r: (C_O₁^2-r₁^2)^.5 " radical centre, radius of radical circle #show ,(),( + ,(,,("s,.4,(),"'red),,("circle,O₁,r₁)) + ,(,,("s,.4,(),"'mediumseagreen),,("circle,O₂,r₂)) + ,(,,("s,.4,(),"'blue),,("circle,O₃,r₃)) + ,(,,("s,(),(),"'red,.7),,("iline,C₁,C₁+⊥u₁)) + ,(,,("s,(),(),"'mediumseagreen,.7),,("iline,C₂,C₂+⊥u₂)) + ,(,,("s,(),(),"'blue,.7),,("iline,C₃,C₃+⊥u₃)) + ,(,(,("s,.4,(),"'grey),("f,"'grey,.1)),,("circle,C,r)) + ,(,,("s,(),(),"'red),,("point,O₁)) + ,(,,("s,(),(),"'mediumseagreen),,("point,O₂)) + ,(,,("s,(),(),"'blue),,("point,O₃)) + ,("point,C) + )
" Let three disks be given, none of which is completely inside another, so that each pair of disks " has a pair of external tangents. Then these pairs meet in points that share a straight line. " One or all of the meeting points can be infinite, and in the latter case the line they share " is the infinite one. Rc: 30,20; Gc: 36,40; Bc: 15,44 rR: 6.7; rG: 12; rB: 15.2 d: Gc_Bc; r: rG-rB; R₁: Bc+rB/d^2*(r*d+(d^2-r^2)^.5*⊥d); R₂: Bc+rB/d^2*(r*d-(d^2-r^2)^.5*⊥d) d: Rc_Bc; r: rR-rB; G₁: Bc+rB/d^2*(r*d+(d^2-r^2)^.5*⊥d); G₂: Bc+rB/d^2*(r*d-(d^2-r^2)^.5*⊥d) d: Rc_Gc; r: rR-rG; B₁: Gc+rG/d^2*(r*d+(d^2-r^2)^.5*⊥d); B₂: Gc+rG/d^2*(r*d-(d^2-r^2)^.5*⊥d) R₀: (rG*Bc-rB*Gc)/(rG-rB) G₀: (rB*Rc-rR*Bc)/(rB-rR) B₀: (rR*Gc-rG*Rc)/(rR-rG) #show ,(),( + ,(,,("s,.5),,("iline,R₀,G₀)) + ,(,,("s,(),(0,(,.9,1)),"'red),(,("iline,R₀,R₁),("iline,R₀,R₂),("point,R₀))) + ,(,,("s,(),(0,(,.9,1)),"'mediumseagreen),(,("iline,G₀,G₁),("iline,G₀,G₂),("point,G₀))) + ,(,,("s,(),(0,(,.9,1)),"'blue),(,("iline,B₀,B₁),("iline,B₀,B₂),("point,B₀))) + ,(,,("s,.5,#t,"'red),,("circle,Rc,rR)) + ,(,,("s,.5,#t,"'mediumseagreen),,("circle,Gc,rG)) + ,(,,("s,.5,#t,"'blue),,("circle,Bc,rB)) + )
" Given that: " • points A and B and numbers k₁ and k₂ are known; " • C and D must be such that AC = k₁AB and AD = k₂AC; " • the diagonal bar must be as wide as the horizontal ones, " the figure ‘Z’ is constructed. This amounts to finding the point E. A: 30,0; B: 75,0 " any two points k₁: 1.25; k₂: .2 " k₁ > 0 and k₂ ∈ (0,.5) must hold for reasons of feasibility C: A+k₁*⊥A_B D: A+k₂*A_C t: k₂^2-(1-2*k₂)^2 E: D+(k₂*(k₂-(1-2*k₂)*(1-k₁^2*t)^.5)/t)*A_B " Constructing a polyline and labels: p: "chain,'(),A,B,B+A_D,E,B+D_C,C+A_B,C,D_C+A,B+E_C,D la: "label,"A,A+(-2.5,-2.5) lb: "label,"B,B+(2.7,-2.5) lc: "label,"C,C+(-3,-1.5) ld: "label,"D,D+(-3,-1) le: "label,'(E=?),E+(1.5,-5.2) #show ,(,("s,.4),("f,"'paleturquoise)),(,p,la,lb,lc,ld,le)
" Dissecting an equilateral triangle into a square. a: 30 " half triangle side A: 0,0 " arbitrary point s: 3^.25/2*a c: (2*a)@0 B: A+c; C: A+c@60 " remaining vertices of the pieces A₁: (B+C)/2; B₁: (C+A)/2 " ... C₁: A+((3-3^/4*(4-3^/2)^/2)/4)*c " ... C₂: C₁+a@c " ... u: C₁_A₁; D₁: B₁-s@⊥u; D₂: C₂+s@⊥u " ... at1: ,("f,"'magenta) " filling colours for the pieces at2: ,("f,"'darkorange) at3: ,("f,"'deepskyblue) at4: ,("f,"'limegreen) " Attaching colours to the pieces of the triangle: pt: ,at1,,("chain,'(),C,B₁,D₁,A₁) pl: ,at2,,("chain,'(),A,C₁,D₁,B₁) pb: ,at3,,("chain,'(),C₁,C₂,D₂) pr: ,at4,,("chain,'(),B,A₁,D₂,C₂) " Constructing the pieces of the square by transforming the original pieces, " plus attaching a colour to each piece: u: s@⊥-u; v: |u@c; P: B+20@c; Q: P+v R: P+((u·D₂_B)*v+(u×D₂_B)*⊥v)/u^2 S: P+((u·D₂_A₁)*v+(u×D₂_A₁)*⊥v)/u^2 pr2: ,at4,,("chain,'(),P,Q,R,S) u: C₂_C₁; v: |u@Q_R; P: Q; Q: P+v R: P+((u·C₂_D₂)*v+(u×C₂_D₂)*⊥v)/u^2 pb2: ,at3,,("chain,'(),P,Q,R) u: C₁_A; v: |u@Q_P; P: Q; Q: P+v R: P+((u·C₁_B₁)*v+(u×C₁_B₁)*⊥v)/u^2 S: P+((u·C₁_D₁)*v+(u×C₁_D₁)*⊥v)/u^2 pl2: ,at2,,("chain,'(),P,Q,R,S) u: C_B₁; v: |u@Q_R; P: Q; Q: R R: P+((u·C_D₁)*v+(u×C_D₁)*⊥v)/u^2 S: P+((u·C_A₁)*v+(u×C_A₁)*⊥v)/u^2 pt2: ,at1,,("chain,'(),P,Q,R,S) " Drawing: #show ,,("s,.2),(,pt,pl,pb,pr,pt2,pl2,pb2,pr2)
" A ‘sphinx’ is a pentagon made by gluing six equilateral triangles together. " A larger sphinx can be formed out of four smaller, equal-sized sphinxes. " Thus the sphinx is a rep-tile: a shape that consists of smaller versions " of itself and that, consequently, can tesselate the plane. a: 15@0; Z: 10,0 " size and starting position P₀: Z; P₁: P₀+3*a; P₂: P₁+a@120; P₃: P₂-a; P₄: P₃+a@120 h₀: "chain,"',P₀,P₁,P₂,P₃,P₄ " basic shape h₁: ,(,("c,(-1,1),P₀+1.5*a),("f,"'deepskyblue)),,h₀ h₂: ,(,("c,(-1,1),P₁),("f,"'magenta)),,h₀ h₃: ,(,("t,a+(2*a)@60),("c,(1,-1),P₀),("f,"'limegreen)),,h₀ h₄: ,(,("t,4*a@60),("r,-120,P₀),("f,"'darkorange)),,h₀ h: ,(,("c,(-.5,.5),P₀+2*a),("s,.6)),(,h₁,h₂,h₃,h₄) " four smaller instances #show ,(),(,h,(,,("f,(),.4),(,h₂,h₃,h₄))) " larger sphinxes have paler colours
" Lemoine point L and related objects. " The perpendicular vectors from L to a, b, c sum up to 0. " L is the centroid of its pedal triangle (grey). " The sum of the squares of the distances to a, b, c is the least possible for L. " The sum of the squares of the sides of an inscribed triangle is the least possible for the pedal triangle of L. " For the six points of intersection defined by the lines through L parallel to a, b, c (dotted): " • all lie on a circle whose centre is the midpoint of L and the circumcentre; " • the three green lines are equal and antiparallel to a, b, c; " • the two blue triangles are congruent, each one similar to ∆ABC. A: 30,10; B: 84,10; C: 42,55 " vertices of a triangle: any points not on the same line a: B_C; b: C_A; c: A_B " vector-sides of ∆ABC L: (a^2·A+b^2·B+c^2·C)/(a^2+b^2+c^2) " Lemoine point O: (A+B−a·b/(a×b)·^c)/2 " circumcentre Z: (O+L)/2 " centre of Lemoine circle s: a^2+b^2+c^2 ta: a^2/s; tb: b^2/s; tc: c^2/s A₁: B+tc·a; A₂: C−tb·a " points of intersection of the Lemoin circle and the sides of ∆ABC B₁: C+ta·b; B₂: A−tc·b " ... C₁: A+tb·c; C₂: B−ta·c " ... La: B+(*a·(L−B))·*a; Lb: C+(*b·(L−C))·*b; Lc: A+(*c·(L−A))·*c " feet of perpendiculars from L vectors: ,(),(,("line,L,La,1),("line,L,Lb,1),("line,L,Lc,1)) " perpendicular vectors from L chords₁: ,,("s,.45,(0,(,0,1.2))),(,("line,A₁,B₂),("line,B₁,C₂),("line,C₁,A₂)) " chords through L ∥ a, b, c chords₂: ,,("s,(),(),"'limegreen),(,("line,A₁,C₂),("line,B₁,A₂),("line,C₁,B₂)) " anti-parallel chords lA: "label,"A,A+(-2.4,-2) " labels of some points lB: "label,"B,B+(2.6,-2) " ... lC: "label,"C,C+(-.5,.8) " ... lL: "label,"L,L+(-2.8,-4.1) " ... lO: "label,"O,O+(3,-.5) " ... lA₁: "label,"A',A₁+(3.7,0) " ... lA₂: "label,'(A"),A₂+(2.8,1) " ... lB₁: "label,"B',B₁+(-2.1,-.8) " ... lB₂: "label,'(B"),B₂+(-2.8,-2) " ... lC₁: "label,"C',C₁+(-1.4,-4.5) " ... lC₂: "label,'(C"),C₂+(1.5,-4.5) " ... #show ,(),(,(,,("s,(),(.5,(,1,1.4))),(,("circle,O,|(A−O)),("circle,Z,|(A₁−Z)))) + ,(,,("s,(),(),"'blue),(,("chain,'(),C₁,A₁,B₁),("chain,'(),B₂,C₂,A₂))) + ,(,,("s,(),(),"'grey),(,("chain,'(),La,Lb,Lc))) + ,vectors,("line,O,L) + ,(,,("s,.4),(,chords₁,chords₂,("chain,'(),A,B,C))) + ,(,,("s,.2,(),"'darkgrey),(,("iline,A,(A+B₂−C₁)),("iline,B,(B+C₂−A₁)),("iline,C,(C+A₂−B₁)))) + ,("point,L),("point,O),("point,Z) + ,(,(),(,lA,lB,lC,lL,lO,lA₁,lA₂,lB₁,lB₂,lC₁,lC₂)))
" The triangles α and β are arbitrary. The unique affinity that maps α to β is a product " of a stretch with scaling coefficients λ and μ, and an isometry. λ, μ, and the mutually " orthogonal attitudes of the stretch are uniquely determined by the affinity. The two " actual axes can be chosen arbitrarily by picking the point that they have in common. " In the figure, the stretch maps α to γ, γ being congruent to β. Note that α and γ are " always oriented the same way, but as α and β can be of the same or opposite orientation, " so are γ and β. A: 35,35; B: 6,7; C: 55,7 " any non-collinear points, ∆α P: 90,42; Q: 103,28; R: 83,0 " any non-collinear points, ∆β Z: 77,40 " any point: where the axes intersect a: *B_C; b: *C_A; c: *A_B k₁: |Q_R/|B_C; k₂: |R_P/|C_A; k₃: |P_Q/|A_B h₁: (k₃-k₂)*(k₃+k₂); h₂: (k₁-k₃)*(k₁+k₃); h₃: (k₂-k₁)*(k₂+k₁) k: (c×b)/(a×b); l: (a×c)/(a×b) d: -(k^2*h₂*h₃+l^2*h₁*h₃+h₁*h₂) u: *((h₁+k^2*h₃)*a+(k*l*h₃+d^.5)*b) λ: ((k₂^2*(u×a)^2-k₁^2*(u×b)^2)/((u×a)^2-(u×b)^2))^.5 μ: (k₁^2-(λ*u·a)^2)^.5/|(u×a) A': Z+λ*u·Z_A*u+μ*u×Z_A*⊥u B': Z+λ*u·Z_B*u+μ*u×Z_B*⊥u C': Z+λ*u·Z_C*u+μ*u×Z_C*⊥u #show ,,("s,.5),(,(,,("s,.4,(0,(,.9,1.2)),"'darkgrey),(,("iline,Z,Z+u),("iline,Z,Z+⊥u))) + ,(,,("s,(),#t,"'red),(,("line,A,B),("line,A',B'),("line,P,Q))) + ,(,,("s,(),#t,"'mediumseagreen),(,("line,B,C),("line,B',C'),("line,Q,R))) + ,(,,("s,(),#t,"'blue),(,("line,C,A),("line,C',A'),("line,R,P))) + ,("point,Z) + ,("label,'(α),(A+B+C)/3) + ,("label,'(β),(P+Q+R)/3+(.5,-2)) + ,("label,'(γ),(A'+B'+C')/3+(-1.5,0)) + ,("label,'(λ = )+(λ|(,2))+'( μ = )+(μ|(,2)),(55,-15)) + )
" Try it yourself.