The Journal of Online Mathematics and Its Applications, Volume 7 (2007)
Scalable Vector Graphics, David Lane

Source code for the second stage of the Thales example

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
<svg xmlns=""
    width="500" height="300" >

<style type="text/css"><![CDATA[
   .axes { fill:none;stroke:#333333;stroke-width:1.6 }
   .pointlabels { font-size:16px; font-family: Arial; font-style: italic;
   		stroke:none; fill:#000000; text-anchor: middle }
   .point{ fill:#000000; stroke:white; stroke-width:1 }
   .outline{ fill:#ffffdd; stroke:#0077bb; stroke-width:3 }
   .thinline{ stroke:#770000; stroke-dasharray: 12,4; stroke-width:1.6 }
   .thickline{ fill:none; stroke:#ff2222; stroke-width:3.5 }

<g transform="matrix(1, 0, 0, -1, 250, 250)">
 	<line class="axes" x1="-240" y1="0" x2="240" y2="0" />
 	<path class="outline" d="M -200,0 A200,200 0 0,0 200,0 L -200,0"/>
 	<rect transform="rotate(225,0,200)"
   		x="0" y="200" width="20" height="20" style="fill:#ffffff;stroke:#000000;stroke-width:1.6"/>
 	<line class="thickline" x1="200" y1="0" x2="0" y2="200" />
 	<line class="thickline" x1="-200" y1="0" x2="0" y2="200" />
 	<line class="thinline" x1="0" y1="0" x2="0" y2="200" />
 	<circle class="point" cx="0" cy="200" r="5" />
 	<circle class="point" cx="0" cy="0" r="5" />
 	<circle class="point" cx="-200" cy="0" r="5" />
 	<circle class="point" cx="200" cy="0" r="5" />
 	<text class="pointlabels" x="0" y="-214" transform="scale(1,-1)">B</text>
 	<text class="pointlabels" x="-210" y="20" transform="scale(1,-1)">A</text>
 	<text class="pointlabels" x="210" y="20" transform="scale(1,-1)">C</text>
 	<text class="pointlabels" x="0" y="20" transform="scale(1,-1)">D</text>