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: "A", type: "Free", pos: [ -2.0, -4.0, 1.0416666666666667 ], color: [ 1.0, 0.0, 0.0 ], labeled: true },
{ name: "a", type: "Through", pos: [ 0.0, 1.0416666666666667, 4.0 ], color: [ 0.0, 0.0, 1.0 ], args: [ "A" ], visible: false, labeled: true },
{ name: "B", type: "PointOnLine", pos: [ 4.0, -1.427509293680297, 0.37174721189591076 ], color: [ 1.0, 0.0, 0.0 ], args: [ "a" ], labeled: true },
{ name: "b", type: "Through", pos: [ -0.33074539567593914, 0.11489050586637894, 4.0 ], color: [ 0.0, 0.0, 1.0 ], args: [ "B" ], visible: false, labeled: true },
{ name: "N", type: "PointOnLine", pos: [ 4.0, -0.499498773376644, 0.3450923123641588 ], color: [ 1.0, 0.0, 0.0 ], args: [ "b" ], visible: false, labeled: true },
{ name: "M", type: "Mid", color: [ 1.0, 0.0, 0.0 ], args: [ "B", "N" ], visible: false, labeled: true },
{ name: "C0", type: "CircleMP", color: [ 1.0, 1.0, 1.0 ], args: [ "N", "B" ], visible: false, size: 0, printname: "$C_{0}$" },
{ name: "E", type: "OtherIntersectionCL", color: [ 1.0, 0.0, 0.0 ], args: [ "C0", "b", "B" ], visible: false, labeled: true },
{ name: "C1", type: "CircleMP", color: [ 1.0, 1.0, 1.0 ], args: [ "E", "N" ], visible: false, size: 0, printname: "$C_{1}$" },
{ name: "F", type: "OtherIntersectionCL", color: [ 1.0, 0.0, 0.0 ], args: [ "C1", "b", "N" ], visible: false, labeled: true },
{ name: "C2", type: "CircleMP", color: [ 1.0, 1.0, 1.0 ], args: [ "E", "B" ], visible: false, size: 0, printname: "$C_{2}$" },
{ name: "G", type: "OtherIntersectionCL", color: [ 1.0, 0.0, 0.0 ], args: [ "C2", "b", "B" ], visible: false, labeled: true },
{ name: "C3", type: "CircleMP", color: [ 1.0, 1.0, 1.0 ], args: [ "G", "F" ], visible: false, size: 0,...