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: [ 4.0, -1.8645418326693228, 0.39840637450199207 ], color: [ 1.0, 0.0, 0.0 ], labeled: true, size: 6.0 },
{ name: "Q", type: "Free", pos: [ 4.0, 1.641025641025641, 1.282051282051282 ], color: [ 1.0, 0.0, 0.0 ], labeled: true, size: 6.0 },
{ name: "P2", type: "Free", pos: [ -1.8181818181818181, -4.0, -0.7575757575757576 ], color: [ 1.0, 0.0, 0.0 ], labeled: true, size: 6.0 },
{ name: "A", type: "Mid", color: [ 1.0, 0.0, 0.0 ], args: [ "P1", "Q" ], size: 2.0 },
{ name: "B", type: "Mid", color: [ 1.0, 0.0, 0.0 ], args: [ "Q", "P2" ], size: 2.0 },
{ name: "a", type: "Segment", color: [ 0.4666667, 0.0, 0.7176471 ], args: [ "P1", "Q" ] },
{ name: "b", type: "Segment", color: [ 0.4666667, 0.0, 0.7176471 ], args: [ "Q", "P2" ] },
{ name: "c", type: "Orthogonal", color: [ 1.0, 0.7411765, 0.4666667 ], args: [ "b", "B" ], size: 2, dashtype: "dashdot" },
{ name: "d", type: "Orthogonal", color: [ 1.0, 0.7843138, 0.0 ], args: [ "a", "A" ], size: 2, dashtype: "dashdot" },
{ name: "e", type: "Parallel", color: [ 1.0, 0.7843138, 0.0 ], args: [ "d", "Q" ], size: 2 },
{ name: "R", type: "Meet", color: [ 1.0, 0.0, 0.0 ], args: [ "c", "e" ], labeled: true },
{ name: "S", type: "Meet", color: [ 1.0, 0.0, 0.0 ], args: [ "c", "d" ], labeled: true },
{ name: "C0", type: "CircleMP", color: [ 1.0, 1.0, 1.0 ], args: [ "R", "S" ], size: 0, printname: "$C_{0}$" },
{ name: "M2", type: "OtherIntersectionCL", color: [ 1.0, 0.0, 0.0 ], args: [ "C0", "c", "S" ], labeled: true },
{ name: "f", type: "Join", color: [ 0.0, 0.0, 1.0 ], args: [ "M2", "Q" ] },
{ name: "M1", type: "Meet", color: [ 1.0, 0.0, 0.0 ], args: [ "d", "f" ], labeled: true },
{ name: "C1", type:...