- regularize.rs: ρ=0 no-op, 0<ρ<1 lerp non-frontage verts toward
OBB-snapped target, ρ=1 full snap to oriented bounding rectangle.
- viz: add fig_03_cul_de_sac, fig_05_acute_corner, plot_subdivision_perf
(~125 µs/parcel at 25×25 scale), plot_parcel_area_hist (varied-block
scene so the distribution is actually distributed). fig_07 panels at
ρ ∈ {0, 0.5, 1.0} on a Y intersection (rectangles are no-ops for OBB).
- subdivide.rs cleanup pass: drop parcels on diff/union/conversion
fallback paths instead of pushing untracked claims (was admitting
overlaps). find_frontage_edge_after_clip now takes a tolerance — the
cleanup pass uses a few-mm window since its inputs are 1mm-snapped.
- tests: bump assert_no_overlapping_parcels tol to 1cm² (the snap grid
produces ~mm-scale slivers between adjacent parcels at intersection
centers; still well below min_area).
Closes M1.0 DoD: all named tests pass, all spec figures present, OBB
regularization working, perf at ~0.13 ms/parcel.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
214 lines
22 KiB
XML
214 lines
22 KiB
XML
<svg height="663.5382907247957" viewBox="-50.00000000000004 -82.94228634059945 145.00000000000006 165.88457268119893" width="580.0000000000002" xmlns="http://www.w3.org/2000/svg">
|
|
<rect fill="#ffffff" height="165.88457268119893" width="145.00000000000006" x="-50.00000000000004" y="-82.94228634059945"/>
|
|
<g transform="translate(0, 0.00000000000002842170943040401) scale(1, -1)">
|
|
<g id="roads">
|
|
<line stroke="#000000" stroke-linecap="round" stroke-width="0.6" x1="0" x2="90" y1="0" y2="0"/>
|
|
<line stroke="#000000" stroke-linecap="round" stroke-width="0.6" x1="0" x2="-44.999999999999986" y1="0" y2="77.94228634059948"/>
|
|
<line stroke="#000000" stroke-linecap="round" stroke-width="0.6" x1="0" x2="-45.00000000000004" y1="0" y2="-77.94228634059945"/>
|
|
<line stroke="#000000" stroke-linecap="round" stroke-width="0.6" x1="90" x2="-44.999999999999986" y1="0" y2="77.94228634059948"/>
|
|
<line stroke="#000000" stroke-linecap="round" stroke-width="0.6" x1="-44.999999999999986" x2="-45.00000000000004" y1="77.94228634059948" y2="-77.94228634059945"/>
|
|
<line stroke="#000000" stroke-linecap="round" stroke-width="0.6" x1="-45.00000000000004" x2="90" y1="-77.94228634059945" y2="0"/>
|
|
</g>
|
|
<g id="parcels">
|
|
<path d="M-15,25.981 L0,0 L20,0 L20,30 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-15" x2="0" y1="25.981" y2="0"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="0" x2="20" y1="0" y2="0"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="20" x2="20" y1="0" y2="30"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="20" x2="-15" y1="30" y2="25.981"/>
|
|
<path d="M42.997,0 L42.997,12.595 L41.519,12.99 L20,12.99 L20,0 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="42.997" x2="42.997" y1="0" y2="12.595"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="42.997" x2="41.519" y1="12.595" y2="12.99"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="41.519" x2="20" y1="12.99" y2="12.99"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="20" x2="20" y1="12.99" y2="0"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="20" x2="42.997" y1="0" y2="0"/>
|
|
<path d="M65.48,0 L65.48,6.57 L42.997,12.595 L42.997,0 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="65.48" x2="65.48" y1="0" y2="6.57"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="65.48" x2="42.997" y1="6.57" y2="12.595"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="42.997" x2="42.997" y1="12.595" y2="0"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="42.997" x2="65.48" y1="0" y2="0"/>
|
|
<path d="M90,0 L65.48,6.57 L65.48,0 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="90" x2="65.48" y1="0" y2="6.57"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="65.48" x2="65.48" y1="6.57" y2="0"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="65.48" x2="90" y1="0" y2="0"/>
|
|
<path d="M71.044075,5.0791354 L73.584,9.478 L55.575,19.875 L50.250168,10.651294 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="71.0440783099138" x2="73.584" y1="5.079135624138107" y2="9.478"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="73.584" x2="55.575" y1="9.478" y2="19.875"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="55.575" x2="50.25016960120116" y1="19.875" y2="10.651293784315396"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="50.25016960120116" x2="71.0440783099138" y1="10.651293784315396" y2="5.079135624138107"/>
|
|
<path d="M50.250168,10.651294 L55.575,19.875 L37.373,30.384 L29.231,16.283 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="50.25016960120116" x2="55.575" y1="10.651293784315397" y2="19.875"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="55.575" x2="37.373" y1="19.875" y2="30.384"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="37.373" x2="29.231" y1="30.384" y2="16.283"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="29.231" x2="50.25016960120116" y1="16.283" y2="10.651293784315397"/>
|
|
<path d="M20,30 L20,18.756712 L29.231,16.283 L37.373,30.384 L20.791,39.958 L14.689761,29.390232 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="20" x2="20" y1="30" y2="18.756712339137017"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="20" x2="29.231" y1="18.756712339137017" y2="16.283"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="29.231" x2="37.373" y1="16.283" y2="30.384"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="37.373" x2="20.791" y1="30.384" y2="39.958"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="20.791" x2="14.689761497784959" y1="39.958" y2="29.39023289884565"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="14.689761497784959" x2="20" y1="29.39023289884565" y2="30"/>
|
|
<path d="M4.6989927,28.243008 L14.689761,29.390232 L20.791,39.958 L5.209,48.954 L-2.558,35.5 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="4.698992798380276" x2="14.689761497784957" y1="28.243007201619722" y2="29.39023289884565"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="14.689761497784957" x2="20.791" y1="29.39023289884565" y2="39.958"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="20.791" x2="5.209" y1="39.958" y2="48.954"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="5.209" x2="-2.558" y1="48.954" y2="35.5"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-2.558" x2="4.698992798380276" y1="35.5" y2="28.243007201619722"/>
|
|
<path d="M-2.558,35.5 L5.209,48.954 L-12.245,59.031 L-17.312,50.255 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-2.558" x2="5.209" y1="35.5" y2="48.954"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="5.209" x2="-12.245" y1="48.954" y2="59.031"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-12.245" x2="-17.312" y1="59.031" y2="50.255"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-17.312" x2="-2.558" y1="50.255" y2="35.5"/>
|
|
<path d="M-17.312,50.255 L-12.245,59.031 L-30.503,69.572 L-32.746,65.688 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-17.312" x2="-12.245" y1="50.255" y2="59.031"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-12.245" x2="-30.503" y1="59.031" y2="69.572"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-30.503" x2="-32.746" y1="69.572" y2="65.688"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-32.746" x2="-17.312" y1="65.688" y2="50.255"/>
|
|
<path d="M-33.572,58.149 L-28.26845,61.21074 L-32.746,65.688 L-32.74573,65.68846 L-45,77.942 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-33.572" x2="-28.2684500668471" y1="58.149" y2="61.21074017634128"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-28.2684500668471" x2="-32.746" y1="61.21074017634128" y2="65.688"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-32.746" x2="-32.74573188512117" y1="65.688" y2="65.68846427025832"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-32.74573188512117" x2="-45" y1="65.68846427025832" y2="77.942"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-45" x2="-33.572" y1="77.942" y2="58.149"/>
|
|
<path d="M-22.822,39.529 L-12.529,45.471 L-28.26845,61.21074 L-33.572,58.149 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-22.822" x2="-12.529" y1="39.529" y2="45.471"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-12.529" x2="-28.2684500668471" y1="45.471" y2="61.21074017634128"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-28.2684500668471" x2="-33.572" y1="61.21074017634128" y2="58.149"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-33.572" x2="-22.822" y1="58.149" y2="39.529"/>
|
|
<path d="M-15,25.981 L-3.75,32.476 L-9.51,42.452 L-12.529,45.471 L-22.822,39.529 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-15" x2="-3.75" y1="25.981" y2="32.476"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-3.75" x2="-9.51" y1="32.476" y2="42.452"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-9.51" x2="-12.529" y1="42.452" y2="45.471"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-12.529" x2="-22.822" y1="45.471" y2="39.529"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-22.822" x2="-15" y1="39.529" y2="25.981"/>
|
|
<path d="M20,0 L0,0 L-15,-25.981 L2.321,-35.981 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="20" x2="0" y1="0" y2="0"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="0" x2="-15" y1="0" y2="-25.981"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-15" x2="2.321" y1="-25.981" y2="-35.981"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="2.321" x2="20" y1="-35.981" y2="0"/>
|
|
<path d="M90,0 L67.003,0 L67.003,-6.162 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="90" x2="67.003" y1="0" y2="0"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="67.003" x2="67.003" y1="0" y2="-6.162"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="67.003" x2="90" y1="-6.162" y2="0"/>
|
|
<path d="M67.003,-6.162 L67.003,0 L44.52,0 L44.52,-12.186 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="67.003" x2="67.003" y1="-6.162" y2="0"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="67.003" x2="44.52" y1="0" y2="0"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="44.52" x2="44.52" y1="0" y2="-12.186"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="44.52" x2="67.003" y1="-12.186" y2="-6.162"/>
|
|
<path d="M41.519,-12.99 L44.52,-12.186 L44.52,0 L20,0 L20,-12.99 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="41.519" x2="44.52" y1="-12.99" y2="-12.186"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="44.52" x2="44.52" y1="-12.186" y2="0"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="44.52" x2="20" y1="0" y2="0"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="20" x2="20" y1="0" y2="-12.99"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="20" x2="41.519" y1="-12.99" y2="-12.99"/>
|
|
<path d="M-14.843,-47.785 L-9.51,-42.452 L-3.7500026,-32.476006 L-15,-25.981 L-24.402,-42.266 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-14.843" x2="-9.51" y1="-47.785" y2="-42.452"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-9.51" x2="-3.75000262506499" y1="-42.452" y2="-32.476004546466726"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-3.75000262506499" x2="-15" y1="-32.476004546466726" y2="-25.981"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-15" x2="-24.402" y1="-25.981" y2="-42.266"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-24.402" x2="-14.843" y1="-42.266" y2="-47.785"/>
|
|
<path d="M-30.169,-63.112 L-14.843,-47.785 L-24.402,-42.266 L-34.87,-60.397 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-30.169" x2="-14.843" y1="-63.112" y2="-47.785"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-14.843" x2="-24.402" y1="-47.785" y2="-42.266"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-24.402" x2="-34.87" y1="-42.266" y2="-60.397"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-34.87" x2="-30.169" y1="-60.397" y2="-63.112"/>
|
|
<path d="M-30.259,-69.432 L-10.412,-57.973 L-15.762978,-48.705036 L-30.169,-63.112 L-30.16909,-63.11195 L-32.539,-65.482 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-30.259" x2="-10.412" y1="-69.432" y2="-57.973"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-10.412" x2="-15.76297802818575" y1="-57.973" y2="-48.7050380554615"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-15.76297802818575" x2="-30.169" y1="-48.7050380554615" y2="-63.112"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-30.169" x2="-30.169089549682138" y1="-63.112" y2="-63.111948281772605"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-30.169089549682138" x2="-32.539" y1="-63.111948281772605" y2="-65.482"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-32.539" x2="-30.259" y1="-65.482" y2="-69.432"/>
|
|
<path d="M-10.412,-57.973 L7.676,-47.53 L0.35220373,-34.84435 L-1.0771391,-34.01914 L-15.762978,-48.705036 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-10.412" x2="7.676" y1="-57.973" y2="-47.53"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="7.676" x2="0.35220371884166757" y1="-47.53" y2="-34.844347219468666"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="0.35220371884166757" x2="-1.0771391603528446" y1="-34.844347219468666" y2="-34.01913916035284"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-1.0771391603528446" x2="-15.76297802818575" y1="-34.01913916035284" y2="-48.7050380554615"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-15.76297802818575" x2="-10.412" y1="-48.7050380554615" y2="-57.973"/>
|
|
<path d="M27.364,-36.163 L47.073,-24.784 L40.433,-13.282 L17.674,-19.38 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="27.364" x2="47.073" y1="-36.163" y2="-24.784"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="47.073" x2="40.433" y1="-24.784" y2="-13.282"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="40.433" x2="17.674" y1="-13.282" y2="-19.38"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="17.674" x2="27.364" y1="-19.38" y2="-36.163"/>
|
|
<path d="M47.073,-24.784 L63.216,-15.464 L59.073,-8.287 L40.433,-13.282 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="47.073" x2="63.216" y1="-24.784" y2="-15.464"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="63.216" x2="59.073" y1="-15.464" y2="-8.287"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="59.073" x2="40.433" y1="-8.287" y2="-13.282"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="40.433" x2="47.073" y1="-13.282" y2="-24.784"/>
|
|
<path d="M63.216,-15.464 L80.787,-5.319 L79.361,-2.851 L59.073,-8.287 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="63.216" x2="80.787" y1="-15.464" y2="-5.319"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="80.787" x2="79.361" y1="-5.319" y2="-2.851"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="79.361" x2="59.073" y1="-2.851" y2="-8.287"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="59.073" x2="63.216" y1="-8.287" y2="-15.464"/>
|
|
<path d="M-15,-25.981 L0,0 L-10,17.321 L-35.981,2.321 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-15" x2="0" y1="-25.981" y2="0"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="0" x2="-10" y1="0" y2="17.321"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-10" x2="-35.981" y1="17.321" y2="2.321"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-35.981" x2="-15" y1="2.321" y2="-25.981"/>
|
|
<path d="M-32.01,29.462 L-21.250376,10.825652 L-10,17.321 L-21.428,37.114 L-32.368,30.798 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-32.01" x2="-21.25037626206422" y1="29.462" y2="10.825651709673867"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-21.25037626206422" x2="-10" y1="10.825651709673867" y2="17.321"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-10" x2="-21.428" y1="17.321" y2="37.114"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-21.428" x2="-32.368" y1="37.114" y2="30.798"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-32.368" x2="-32.01" y1="30.798" y2="29.462"/>
|
|
<path d="M-32.368,30.798 L-21.428,37.114 L-32.178,55.734 L-38.129,52.298 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-32.368" x2="-21.428" y1="30.798" y2="37.114"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-21.428" x2="-32.178" y1="37.114" y2="55.734"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-32.178" x2="-38.129" y1="55.734" y2="52.298"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-38.129" x2="-32.368" y1="52.298" y2="30.798"/>
|
|
<path d="M-38.129,52.298 L-32.178,55.734 L-42.033,72.803 L-43.41,72.008 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-38.129" x2="-32.178" y1="52.298" y2="55.734"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-32.178" x2="-42.033" y1="55.734" y2="72.803"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-42.033" x2="-43.41" y1="72.803" y2="72.008"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-43.41" x2="-38.129" y1="72.008" y2="52.298"/>
|
|
<path d="M-39.252,56.489 L-45,77.942 L-45,56.489 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-39.252" x2="-45" y1="56.489" y2="77.942"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-45" x2="-45" y1="77.942" y2="56.489"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-45" x2="-39.252" y1="56.489" y2="56.489"/>
|
|
<path d="M-33.32406,34.366 L-39.252,56.489 L-45,56.489 L-45,34.366 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-33.32405804651163" x2="-39.252" y1="34.366" y2="56.489"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-39.252" x2="-45" y1="56.489" y2="56.489"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-45" x2="-45" y1="56.489" y2="34.366"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-45" x2="-33.32405804651163" y1="34.366" y2="34.366"/>
|
|
<path d="M-32.36852,-2.552 L-35.981,2.321 L-26.243582,7.9428496 L-28.458,16.206 L-45,16.206 L-45,-2.552 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-32.36851985725391" x2="-35.981" y1="-2.552" y2="2.321"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-35.981" x2="-26.243581742199023" y1="2.321" y2="7.942849577268568"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-26.243581742199023" x2="-28.458" y1="7.942849577268568" y2="16.206"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-28.458" x2="-45" y1="16.206" y2="16.206"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-45" x2="-45" y1="16.206" y2="-2.552"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-45" x2="-32.36851985725391" y1="-2.552" y2="-2.552"/>
|
|
<path d="M-29.445,-19.889 L-26.808786,-10.051717 L-32.36852,-2.552 L-45,-2.552 L-45,-19.889 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-29.445" x2="-26.808787308733464" y1="-19.889" y2="-10.051716438121415"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-26.808787308733464" x2="-32.3685198572539" y1="-10.051716438121415" y2="-2.552"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-32.3685198572539" x2="-45" y1="-2.552" y2="-2.552"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-45" x2="-45" y1="-2.552" y2="-19.889"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-45" x2="-29.445" y1="-19.889" y2="-19.889"/>
|
|
<path d="M-34.355,-38.214 L-29.445,-19.889 L-45,-19.889 L-45,-38.214 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-34.355" x2="-29.445" y1="-38.214" y2="-19.889"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-29.445" x2="-45" y1="-19.889" y2="-19.889"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-45" x2="-45" y1="-19.889" y2="-38.214"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-45" x2="-34.355" y1="-38.214" y2="-38.214"/>
|
|
<path d="M-39.395,-57.025 L-34.355,-38.214 L-45,-38.214 L-45,-57.025 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-39.395" x2="-34.355" y1="-57.025" y2="-38.214"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-34.355" x2="-45" y1="-38.214" y2="-38.214"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-45" x2="-45" y1="-38.214" y2="-57.025"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-45" x2="-39.395" y1="-57.025" y2="-57.025"/>
|
|
<path d="M-35.598,-61.657 L-25.13,-43.526 L-34.351,-38.201 L-39.961,-59.138 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-35.598" x2="-25.13" y1="-61.657" y2="-43.526"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-25.13" x2="-34.351" y1="-43.526" y2="-38.201"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-34.351" x2="-39.961" y1="-38.201" y2="-59.138"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-39.961" x2="-35.598" y1="-59.138" y2="-61.657"/>
|
|
<path d="M-25.13,-43.526 L-15,-25.981 L-26.25,-19.486 L-32.00998,-29.461966 L-34.351,-38.201 z" fill="#fff7c2" fill-opacity="0.3" stroke="none"/>
|
|
<line stroke="#1f5fb4" stroke-width="0.9" x1="-25.13" x2="-15" y1="-43.526" y2="-25.981"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-15" x2="-26.25" y1="-25.981" y2="-19.486"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-26.25" x2="-32.00998014489701" y1="-19.486" y2="-29.461965612064674"/>
|
|
<line stroke="#bdbdbd" stroke-dasharray="1.6,1.2" stroke-width="0.4" x1="-32.00998014489701" x2="-34.351" y1="-29.461965612064674" y2="-38.201"/>
|
|
<line stroke="#6b6b6b" stroke-width="0.4" x1="-34.351" x2="-25.13" y1="-38.201" y2="-43.526"/>
|
|
</g>
|
|
<g id="nodes">
|
|
<circle cx="0" cy="0" fill="#000000" r="0.7"/>
|
|
<circle cx="90" cy="0" fill="#000000" r="0.7"/>
|
|
<circle cx="-44.999999999999986" cy="77.94228634059948" fill="#000000" r="0.7"/>
|
|
<circle cx="-45.00000000000004" cy="-77.94228634059945" fill="#000000" r="0.7"/>
|
|
</g>
|
|
</g>
|
|
</svg> |