HTML
<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: "P1", type: "Free", pos: [ -0.32, 1.6, 4.0 ], color: [ 1.0, 1.0, 0.0 ], labeled: true, size: 6.0 },
{ name: "a", type: "Through", pos: [ 4.0, -2.7058823529411766, 1.4023529411764708 ], color: [ 0.0, 0.0, 1.0 ], args: [ "P1" ], size: 2 },
{ name: "P2", type: "Free", pos: [ -0.7533632286995515, -4.0, -0.44843049327354256 ], color: [ 1.0, 1.0, 0.0 ], labeled: true, size: 6.0 },
{ name: "b", type: "Through", pos: [ 0.027323897480736596, -0.4535766981802284, 4.0 ], color: [ 0.0, 0.0, 1.0 ], args: [ "P2" ], size: 2 },
{ name: "S1", type: "PointOnLine", pos: [ -2.1480320314270607, -4.0, -1.5911838029765044 ], color: [ 1.0, 0.0, 0.0 ], args: [ "a" ], labeled: true },
{ name: "C0", type: "Compass", color: [ 0.0, 0.0, 0.0 ], args: [ "P1", "S1", "P2" ], alpha: 0.29914529914529914, printname: "$C_{0}$" },
{ name: "C1", type: "CircleMP", color: [ 0.4666667, 0.0, 0.7176471 ], args: [ "S1", "P1" ], alpha: 0.4017094017094017, dashtype: "dashed", printname: "$C_{1}$" },
{ name: "Collection__1", type: "IntersectionConicLine", args: [ "C0", "b" ] },
{ name: "Q", type: "SelectP", pos: [ -1.8636631530992236, -4.0, -0.4408460629467512 ], color: [ 1.0, 0.0, 0.0 ], args: [ "Collection__1" ], labeled: true },
{ name: "A", type: "Mid", color: [ 1.0, 0.0, 0.0 ], args: [ "S1", "Q" ], size: 2.0 },
{ name: "c", type: "Join", color: [ 0.0, 0.0, 0.0 ], args: [ "S1", "Q" ] },
{ name: "d", type: "Orthogonal", color: [ 0.0, 0.0, 0.0 ], args: [ "c", "A" ] },
{ name: "S2", type: "Meet", color: [ 1.0, 0.0, 0.0 ], args: [ "b", "d" ], labeled: true },
{ name: "e", type: "Join", color: [ 0.098039225, 0.61960787, 0.30588236 ], args: [ "S1", "S2" ] },
{ name: "C2", type: "CircleMP", color: [...