# [GIF] Isogonal (Isogonal conjugates of edge parallels)

Posted 2 years ago
2916 Views
|
|
9 Total Likes
|
 IsogonalTake the isogonal conjugates of lines parallel to a triangle's edges, then let the lines translate parallel to themselves; the result is the above animation. Here's the code: SideVectors[Δ_] := (#[[2]] - #[[1]]) & /@ Transpose[{Δ[[1]], RotateLeft[Δ[[1]]]}]; SideLengths[Δ_] := Norm /@ SideVectors[Δ]; BarycentricCoords[Δ_, t_] := Sum[t[[i]] Δ[[1, i]], {i, 1, 3}]/Total[t]; TrilinearCoords[Δ_, {α_, β_, γ_}] := Module[{a, b, c}, {a, b, c} = SideLengths[Δ]; BarycentricCoords[Δ, {α a, β b, \ γ c}] ]; EquilateralTriangle = Triangle[{{0, 0}, {1, 0}, {1/2, Sqrt[3]/2}}]; isogonal = With[{cols = RGBColor /@ {"#FF5964", "#6BF178", "#35A7FF", "#333333"}, n = 9}, ParallelTable[ImageMultiply @@ Append[ Flatten[ Table[ ParametricPlot[ TrilinearCoords[EquilateralTriangle, RotateLeft[ 1/{i + s/n, (1 - i - s/n) t, (1 - i - s/n) (1 - t)}, j]], {t, .00001, .99999}, PlotStyle -> Directive[CapForm[None], Thickness[.006], Opacity[.5], cols[[j + 1]]], ImageSize -> 1080, Background -> White, Axes -> False, PlotRange -> {{-1/8, 9/8}, {Sqrt[3]/4 - 5/8, Sqrt[3]/4 + 5/8}}], {j, 0, 2}, {i, 0., 1 - 1/n, 1/n}]], Graphics[{FaceForm[None], EdgeForm[ Directive[JoinForm["Round"], Thickness[.006], cols[[-1]]]], EquilateralTriangle}, PlotRange -> {{-1/8, 9/8}, {Sqrt[3]/4 - 5/8, Sqrt[3]/4 + 5/8}}, Background -> GrayLevel[.95]]], {s, .00001, .99999 - #, #}] &[.99998/100] ]; Export[NotebookDirectory[] <> "isogonal.gif", Reverse[RotateRight[isogonal, 1]], "DisplayDurations" -> {1/24}]