HTML
<script src="https://cindyjs.org/dist/latest/Cindy.js"></script>
<script src="https://cindyjs.org/dist/v0.8.7/Cindy.js"></script>
<div id="CSCanvas"></div>
<script>
CindyJS({
scripts: "cs*",
defaultAppearance: { fontFamily: "sans-serif", lineSize: 1, pointSize: 5.0, textsize: 12.0 },
angleUnit: "°",
geometry: [
{ name: "A", type: "Free", pos: [ 0.0, -0.0, 4.0 ], color: [ 1.0, 0.0, 0.0 ], labeled: true },
{ name: "M", type: "Free", pos: [ 3.0, -0.0, 1.0 ], color: [ 1.0, 0.0, 0.0 ], labeled: true },
{ name: "cos(phi)", type: "Join", color: [ 0.0, 0.0, 1.0 ], args: [ "A", "M" ], dashtype: "dashed" },
{ name: "b", type: "Orthogonal", color: [ 0.0, 0.0, 0.0 ], args: [ "cos(phi)", "M" ], size: 2 },
{ name: "S", type: "PointOnLine", pos: [ -2.1621621621621623, -4.0, -0.5405405405405406 ], color: [ 1.0, 0.0, 0.0 ], args: [ "b" ], labeled: true },
{ name: "c", type: "Join", color: [ 0.0, 0.0, 1.0 ], args: [ "A", "S" ] },
{ name: "C0", type: "CircleMP", color: [ 0.0, 0.0, 1.0 ], args: [ "A", "M" ], printname: "$C_{0}$" },
{ name: "d", type: "RandomLine", color: [ 1.0, 1.0, 1.0 ], size: 0 },
{ name: "D", type: "Meet", color: [ 1.0, 1.0, 1.0 ], args: [ "d", "cos(phi)" ], size: 0.0 },
{ name: "e", type: "Orthogonal", color: [ 1.0, 1.0, 1.0 ], args: [ "c", "D" ], size: 0 },
{ name: "E", type: "Meet", color: [ 1.0, 1.0, 1.0 ], args: [ "c", "e" ], size: 0.0 },
{ name: "C1", type: "CircleMP", color: [ 1.0, 1.0, 1.0 ], args: [ "E", "D" ], size: 0, printname: "$C_{1}$" },
{ name: "F", type: "OtherIntersectionCL", color: [ 1.0, 1.0, 1.0 ], args: [ "C1", "e", "D" ], size: 0.0 },
{ name: "f", type: "Join", color: [ 0.0, 0.0, 1.0 ], args: [ "A", "F" ], clip: "inci" },
{ name: "Collection__1", type: "IntersectionConicLine", args: [ "C0", "f" ] },
{ name: "M'", type: "SelectP", pos: [ 2.6189189189189177, -4.0, -1.19527027027027 ], color: [ 1.0, 0.0, 0.0 ], args: [ "Collection__1" ], labeled: true },
{ name: "g", type:...