@tscircuit/schematic-trace-solver 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +127 -34
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +7 -8
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver_visualize.ts +2 -3
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/collisions.ts +10 -3
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +41 -14
- package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver/generateElbowVariants.ts +129 -6
- package/package.json +1 -1
- package/site/examples/example08.page.tsx +1 -1
- package/tests/examples/__snapshots__/example01.snap.svg +29 -32
- package/tests/examples/__snapshots__/example02.snap.svg +5 -5
- package/tests/examples/__snapshots__/example04.snap.svg +12 -12
- package/tests/examples/__snapshots__/example05.snap.svg +35 -35
- package/tests/examples/__snapshots__/example06.snap.svg +14 -14
- package/tests/examples/__snapshots__/example08.snap.svg +23 -29
- package/tests/examples/__snapshots__/example11.snap.svg +33 -39
- package/tests/examples/__snapshots__/example12.snap.svg +29 -32
- package/tests/examples/__snapshots__/example13.snap.svg +84 -87
- package/tests/examples/__snapshots__/example15.snap.svg +57 -57
- package/tests/examples/example14.test.tsx +0 -1
- package/tests/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver01.test.ts +1 -2
|
@@ -2,79 +2,73 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="R1.1
|
|
5
|
-
x-" data-x="3.4487093" data-y="0.0002732499999993365" cx="
|
|
5
|
+
x-" data-x="3.4487093" data-y="0.0002732499999993365" cx="483.91452543483126" cy="319.9736231111467" r="3" fill="hsl(226, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="R1.2
|
|
9
|
-
x+" data-x="4.5512907" data-y="-0.0002732499999993365" cx="
|
|
9
|
+
x+" data-x="4.5512907" data-y="-0.0002732499999993365" cx="590.3469757169728" cy="320.0263768888533" r="3" fill="hsl(227, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="U1.1
|
|
13
|
-
x-" data-x="-0.6000000000000001" data-y="0.30000000000000004" cx="
|
|
13
|
+
x-" data-x="-0.6000000000000001" data-y="0.30000000000000004" cx="93.09163355664974" cy="291.0409271509183" r="3" fill="hsl(319, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="U1.2
|
|
17
|
-
x-" data-x="-0.6000000000000001" data-y="0.10000000000000003" cx="
|
|
17
|
+
x-" data-x="-0.6000000000000001" data-y="0.10000000000000003" cx="93.09163355664974" cy="310.3469757169728" r="3" fill="hsl(320, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
20
|
<circle data-type="point" data-label="U1.3
|
|
21
|
-
x-" data-x="-0.6000000000000001" data-y="-0.09999999999999998" cx="
|
|
21
|
+
x-" data-x="-0.6000000000000001" data-y="-0.09999999999999998" cx="93.09163355664974" cy="329.6530242830272" r="3" fill="hsl(321, 100%, 50%, 0.8)" />
|
|
22
22
|
</g>
|
|
23
23
|
<g>
|
|
24
24
|
<circle data-type="point" data-label="U1.4
|
|
25
|
-
x-" data-x="-0.6000000000000001" data-y="-0.30000000000000004" cx="
|
|
25
|
+
x-" data-x="-0.6000000000000001" data-y="-0.30000000000000004" cx="93.09163355664974" cy="348.9590728490817" r="3" fill="hsl(322, 100%, 50%, 0.8)" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<circle data-type="point" data-label="U1.5
|
|
29
|
-
x+" data-x="0.6000000000000001" data-y="-0.30000000000000004" cx="
|
|
29
|
+
x+" data-x="0.6000000000000001" data-y="-0.30000000000000004" cx="208.9279249529764" cy="348.9590728490817" r="3" fill="hsl(323, 100%, 50%, 0.8)" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
32
|
<circle data-type="point" data-label="U1.6
|
|
33
|
-
x+" data-x="0.6000000000000001" data-y="-0.10000000000000003" cx="
|
|
33
|
+
x+" data-x="0.6000000000000001" data-y="-0.10000000000000003" cx="208.9279249529764" cy="329.6530242830272" r="3" fill="hsl(324, 100%, 50%, 0.8)" />
|
|
34
34
|
</g>
|
|
35
35
|
<g>
|
|
36
36
|
<circle data-type="point" data-label="U1.7
|
|
37
|
-
x+" data-x="0.6000000000000001" data-y="0.09999999999999998" cx="
|
|
37
|
+
x+" data-x="0.6000000000000001" data-y="0.09999999999999998" cx="208.9279249529764" cy="310.3469757169728" r="3" fill="hsl(325, 100%, 50%, 0.8)" />
|
|
38
38
|
</g>
|
|
39
39
|
<g>
|
|
40
40
|
<circle data-type="point" data-label="U1.8
|
|
41
|
-
x+" data-x="0.6000000000000001" data-y="0.30000000000000004" cx="
|
|
41
|
+
x+" data-x="0.6000000000000001" data-y="0.30000000000000004" cx="208.9279249529764" cy="291.0409271509183" r="3" fill="hsl(326, 100%, 50%, 0.8)" />
|
|
42
42
|
</g>
|
|
43
43
|
<g>
|
|
44
|
-
<circle data-type="point" data-label="" data-x="-0.
|
|
44
|
+
<circle data-type="point" data-label="" data-x="-0.7000000000000001" data-y="0.30000000000000004" cx="83.43860927362252" cy="291.0409271509183" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
45
45
|
</g>
|
|
46
46
|
<g>
|
|
47
|
-
<circle data-type="point" data-label="" data-x="
|
|
47
|
+
<circle data-type="point" data-label="" data-x="1.3121773250000002" data-y="-0.10000000000000003" cx="277.6745750734401" cy="329.6530242830272" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
48
48
|
</g>
|
|
49
49
|
<g>
|
|
50
|
-
<
|
|
50
|
+
<polyline data-points="-0.6000000000000001,0.30000000000000004 3.4487093,0.0002732499999993365" data-type="line" data-label="" points="93.09163355664974,291.0409271509183 483.91452543483126,319.9736231111467" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1" />
|
|
51
51
|
</g>
|
|
52
52
|
<g>
|
|
53
|
-
<
|
|
53
|
+
<polyline data-points="0.6000000000000001,-0.10000000000000003 4.5512907,-0.0002732499999993365" data-type="line" data-label="" points="208.9279249529764,329.6530242830272 590.3469757169728,320.0263768888533" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1" />
|
|
54
54
|
</g>
|
|
55
55
|
<g>
|
|
56
|
-
<polyline data-points="-0.6000000000000001,0.30000000000000004 3.
|
|
56
|
+
<polyline data-points="-0.6000000000000001,0.30000000000000004 -0.7000000000000001,0.30000000000000004 -0.7000000000000001,0.6 2.0243546500000003,0.6 2.0243546500000003,0.0002732499999993365 3.4487093000000004,0.0002732499999993365" data-type="line" data-label="" points="93.09163355664974,291.0409271509183 83.43860927362252,291.0409271509183 83.43860927362252,262.08185430183664 346.42122519390387,262.08185430183664 346.42122519390387,319.9736231111467 483.91452543483126,319.9736231111467" fill="none" stroke="purple" stroke-width="1" />
|
|
57
57
|
</g>
|
|
58
58
|
<g>
|
|
59
|
-
<polyline data-points="0.6000000000000001,-0.10000000000000003 4.5512907,-0.0002732499999993365" data-type="line" data-label="" points="
|
|
59
|
+
<polyline data-points="0.6000000000000001,-0.10000000000000003 2.0243546500000003,-0.10000000000000003 2.0243546500000003,-0.6 4.6512907,-0.6 4.6512907,-0.0002732499999993365 4.5512907,-0.0002732499999993365" data-type="line" data-label="" points="208.9279249529764,329.6530242830272 346.42122519390387,329.6530242830272 346.42122519390387,377.91814569816336 600,377.91814569816336 600,320.0263768888533 590.3469757169728,320.0263768888533" fill="none" stroke="purple" stroke-width="1" />
|
|
60
60
|
</g>
|
|
61
61
|
<g>
|
|
62
|
-
<rect data-type="rect" data-label="schematic_component_0" data-x="4" data-y="0" x="
|
|
62
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="4" data-y="0" x="483.91452543483126" y="301.22917784485446" width="106.43245028214153" height="37.541644310291076" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010359447678571429" />
|
|
63
63
|
</g>
|
|
64
64
|
<g>
|
|
65
|
-
<rect data-type="rect" data-label="schematic_component_1" data-x="0" data-y="0" x="
|
|
65
|
+
<rect data-type="rect" data-label="schematic_component_1" data-x="0" data-y="0" x="93.09163355664974" y="271.7348785848639" width="115.83629139632667" height="96.53024283027219" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.010359447678571429" />
|
|
66
66
|
</g>
|
|
67
67
|
<g>
|
|
68
|
-
<rect data-type="rect" data-label="" data-x="-0.
|
|
68
|
+
<rect data-type="rect" data-label="" data-x="-0.925" data-y="0.30000000000000004" x="40" y="281.3879028678911" width="43.43860927362252" height="19.306048566054415" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.010359447678571429" />
|
|
69
69
|
</g>
|
|
70
70
|
<g>
|
|
71
|
-
<rect data-type="rect" data-label="" data-x="
|
|
72
|
-
</g>
|
|
73
|
-
<g>
|
|
74
|
-
<rect data-type="rect" data-label="" data-x="0.8260000000000001" data-y="-0.10000000000000003" x="192.82927020174336" y="320" width="41.63024914696396" height="18.502332954206224" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.010809447678571428" />
|
|
75
|
-
</g>
|
|
76
|
-
<g>
|
|
77
|
-
<rect data-type="rect" data-label="" data-x="4.7772907" data-y="-0.0002732499999993365" x="558.3697508530361" y="310.7741123352955" width="41.63024914696393" height="18.502332954206224" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.010809447678571428" />
|
|
71
|
+
<rect data-type="rect" data-label="" data-x="1.3121773250000002" data-y="0.12499999999999997" x="268.0215507904129" y="286.2144150094047" width="19.30604856605447" height="43.43860927362249" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.010359447678571429" />
|
|
78
72
|
</g>
|
|
79
73
|
<g id="crosshair" style="display: none">
|
|
80
74
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -104,11 +98,11 @@ x+" data-x="0.6000000000000001" data-y="0.30000000000000004" cx="192.73675853697
|
|
|
104
98
|
|
|
105
99
|
// Calculate real coordinates using inverse transformation
|
|
106
100
|
const matrix = {
|
|
107
|
-
"a":
|
|
101
|
+
"a": 96.53024283027223,
|
|
108
102
|
"c": 0,
|
|
109
|
-
"e":
|
|
103
|
+
"e": 151.00977925481308,
|
|
110
104
|
"b": 0,
|
|
111
|
-
"d": -
|
|
105
|
+
"d": -96.53024283027223,
|
|
112
106
|
"f": 320
|
|
113
107
|
};
|
|
114
108
|
// Manually invert and apply the affine transform
|
|
@@ -2,105 +2,99 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="R1.1
|
|
5
|
-
x-" data-x="-1.58" data-y="0.765" cx="
|
|
5
|
+
x-" data-x="-1.58" data-y="0.765" cx="55.09433962264151" cy="210.94339622641508" r="3" fill="hsl(226, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="R1.2
|
|
9
|
-
x+" data-x="-0.48" data-y="0.765" cx="
|
|
9
|
+
x+" data-x="-0.48" data-y="0.765" cx="221.1320754716981" cy="210.94339622641508" r="3" fill="hsl(227, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="R2.1
|
|
13
|
-
x-" data-x="0.48" data-y="0.765" cx="
|
|
13
|
+
x-" data-x="0.48" data-y="0.765" cx="366.03773584905656" cy="210.94339622641508" r="3" fill="hsl(107, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="R2.2
|
|
17
|
-
x+" data-x="1.58" data-y="0.765" cx="
|
|
17
|
+
x+" data-x="1.58" data-y="0.765" cx="532.0754716981131" cy="210.94339622641508" r="3" fill="hsl(108, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
20
|
<circle data-type="point" data-label="R3.1
|
|
21
|
-
x-" data-x="-1.58" data-y="-0.765" cx="
|
|
21
|
+
x-" data-x="-1.58" data-y="-0.765" cx="55.09433962264151" cy="441.88679245283015" r="3" fill="hsl(348, 100%, 50%, 0.8)" />
|
|
22
22
|
</g>
|
|
23
23
|
<g>
|
|
24
24
|
<circle data-type="point" data-label="R3.2
|
|
25
|
-
x+" data-x="-0.48" data-y="-0.765" cx="
|
|
25
|
+
x+" data-x="-0.48" data-y="-0.765" cx="221.1320754716981" cy="441.88679245283015" r="3" fill="hsl(349, 100%, 50%, 0.8)" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<circle data-type="point" data-label="J1.1
|
|
29
|
-
x-" data-x="0.5800000000000001" data-y="-0.665" cx="
|
|
29
|
+
x-" data-x="0.5800000000000001" data-y="-0.665" cx="381.1320754716981" cy="426.7924528301886" r="3" fill="hsl(218, 100%, 50%, 0.8)" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
32
|
<circle data-type="point" data-label="J1.2
|
|
33
|
-
y-" data-x="1.03" data-y="-1.03" cx="
|
|
33
|
+
y-" data-x="1.03" data-y="-1.03" cx="449.05660377358487" cy="481.88679245283015" r="3" fill="hsl(219, 100%, 50%, 0.8)" />
|
|
34
34
|
</g>
|
|
35
35
|
<g>
|
|
36
36
|
<circle data-type="point" data-label="J1.3
|
|
37
|
-
x+" data-x="1.48" data-y="-0.665" cx="
|
|
37
|
+
x+" data-x="1.48" data-y="-0.665" cx="516.9811320754716" cy="426.7924528301886" r="3" fill="hsl(220, 100%, 50%, 0.8)" />
|
|
38
38
|
</g>
|
|
39
39
|
<g>
|
|
40
|
-
<circle data-type="point" data-label="" data-x="0.27999999999999997" data-y="0.
|
|
40
|
+
<circle data-type="point" data-label="" data-x="0.27999999999999997" data-y="0.665" cx="335.84905660377353" cy="226.0377358490566" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
41
41
|
</g>
|
|
42
42
|
<g>
|
|
43
|
-
<circle data-type="point" data-label="" data-x="1.
|
|
43
|
+
<circle data-type="point" data-label="" data-x="1.58" data-y="0.765" cx="532.0754716981131" cy="210.94339622641508" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
44
44
|
</g>
|
|
45
45
|
<g>
|
|
46
|
-
<circle data-type="point" data-label="" data-x="0.
|
|
46
|
+
<circle data-type="point" data-label="" data-x="0.34" data-y="-0.665" cx="344.90566037735846" cy="426.7924528301886" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
47
47
|
</g>
|
|
48
48
|
<g>
|
|
49
|
-
<circle data-type="point" data-label="" data-x="
|
|
49
|
+
<circle data-type="point" data-label="" data-x="1.63" data-y="-0.665" cx="539.6226415094338" cy="426.7924528301886" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
50
50
|
</g>
|
|
51
51
|
<g>
|
|
52
|
-
<
|
|
52
|
+
<polyline data-points="0.48,0.765 -0.48,-0.765" data-type="line" data-label="" points="366.03773584905656,210.94339622641508 221.1320754716981,441.88679245283015" fill="none" stroke="hsl(224, 100%, 50%, 0.8)" stroke-width="1" />
|
|
53
53
|
</g>
|
|
54
54
|
<g>
|
|
55
|
-
<
|
|
55
|
+
<polyline data-points="1.58,0.765 -1.58,-0.765" data-type="line" data-label="" points="532.0754716981131,210.94339622641508 55.09433962264151,441.88679245283015" fill="none" stroke="hsl(224, 100%, 50%, 0.8)" stroke-width="1" />
|
|
56
56
|
</g>
|
|
57
57
|
<g>
|
|
58
|
-
<polyline data-points="0.
|
|
58
|
+
<polyline data-points="0.5800000000000001,-0.665 -1.58,0.765" data-type="line" data-label="" points="381.1320754716981,426.7924528301886 55.09433962264151,210.94339622641508" fill="none" stroke="hsl(168, 100%, 50%, 0.8)" stroke-width="1" />
|
|
59
59
|
</g>
|
|
60
60
|
<g>
|
|
61
|
-
<polyline data-points="1.
|
|
61
|
+
<polyline data-points="1.48,-0.665 -0.48,0.765" data-type="line" data-label="" points="516.9811320754716,426.7924528301886 221.1320754716981,210.94339622641508" fill="none" stroke="hsl(168, 100%, 50%, 0.8)" stroke-width="1" />
|
|
62
62
|
</g>
|
|
63
63
|
<g>
|
|
64
|
-
<polyline data-points="0.
|
|
64
|
+
<polyline data-points="0.48,0.765 0.27999999999999997,0.665 -0.1,0.665 -0.1,-0.765 -0.27999999999999997,-0.765 -0.48,-0.765" data-type="line" data-label="" points="366.03773584905656,210.94339622641508 335.84905660377353,226.0377358490566 278.49056603773585,226.0377358490566 278.49056603773585,441.88679245283015 251.32075471698113,441.88679245283015 221.1320754716981,441.88679245283015" fill="none" stroke="purple" stroke-width="1" />
|
|
65
65
|
</g>
|
|
66
66
|
<g>
|
|
67
|
-
<polyline data-points="1.
|
|
67
|
+
<polyline data-points="1.58,0.765 1.58,-0.1 -1.6800000000000002,-0.1 -1.6800000000000002,-0.765 -1.58,-0.765" data-type="line" data-label="" points="532.0754716981131,210.94339622641508 532.0754716981131,341.5094339622641 39.99999999999997,341.5094339622641 39.99999999999997,441.88679245283015 55.09433962264151,441.88679245283015" fill="none" stroke="purple" stroke-width="1" />
|
|
68
68
|
</g>
|
|
69
69
|
<g>
|
|
70
|
-
<polyline data-points="0.
|
|
70
|
+
<polyline data-points="0.5800000000000001,-0.665 0.1,-0.665 0.1,0.1 -1.6800000000000002,0.1 -1.6800000000000002,0.765 -1.58,0.765" data-type="line" data-label="" points="381.1320754716981,426.7924528301886 308.6792452830188,426.7924528301886 308.6792452830188,311.3207547169811 39.99999999999997,311.3207547169811 39.99999999999997,210.94339622641508 55.09433962264151,210.94339622641508" fill="none" stroke="purple" stroke-width="1" />
|
|
71
71
|
</g>
|
|
72
72
|
<g>
|
|
73
|
-
<polyline data-points="1.
|
|
73
|
+
<polyline data-points="1.48,-0.665 1.78,-0.665 1.78,0.03527232500000027 0,0.03527232500000027 0,0.765 -0.48,0.765" data-type="line" data-label="" points="516.9811320754716,426.7924528301886 562.2641509433961,426.7924528301886 562.2641509433961,321.0909698113207 293.58490566037733,321.0909698113207 293.58490566037733,210.94339622641508 221.1320754716981,210.94339622641508" fill="none" stroke="purple" stroke-width="1" />
|
|
74
74
|
</g>
|
|
75
75
|
<g>
|
|
76
|
-
<rect data-type="rect" data-label="schematic_component_0" data-x="-1.03" data-y="0.765" x="
|
|
76
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="-1.03" data-y="0.765" x="55.09433962264151" y="181.59164528301895" width="166.0377358490566" height="58.70350188679228" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006625000000000001" />
|
|
77
77
|
</g>
|
|
78
78
|
<g>
|
|
79
|
-
<rect data-type="rect" data-label="schematic_component_1" data-x="1.03" data-y="0.765" x="
|
|
79
|
+
<rect data-type="rect" data-label="schematic_component_1" data-x="1.03" data-y="0.765" x="366.03773584905656" y="181.59164528301895" width="166.03773584905656" height="58.70350188679228" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006625000000000001" />
|
|
80
80
|
</g>
|
|
81
81
|
<g>
|
|
82
|
-
<rect data-type="rect" data-label="schematic_component_2" data-x="-1.03" data-y="-0.765" x="
|
|
82
|
+
<rect data-type="rect" data-label="schematic_component_2" data-x="-1.03" data-y="-0.765" x="55.09433962264151" y="412.535041509434" width="166.0377358490566" height="58.70350188679231" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006625000000000001" />
|
|
83
83
|
</g>
|
|
84
84
|
<g>
|
|
85
|
-
<rect data-type="rect" data-label="schematic_component_3" data-x="1.03" data-y="-0.765" x="
|
|
85
|
+
<rect data-type="rect" data-label="schematic_component_3" data-x="1.03" data-y="-0.765" x="381.1320754716981" y="401.88679245283015" width="135.84905660377348" height="80" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006625000000000001" />
|
|
86
86
|
</g>
|
|
87
87
|
<g>
|
|
88
|
-
<rect data-type="rect" data-label="" data-x="0.27999999999999997" data-y="0.
|
|
88
|
+
<rect data-type="rect" data-label="" data-x="0.27999999999999997" data-y="0.89" x="320.75471698113205" y="158.1132075471698" width="30.188679245283026" height="67.9245283018868" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.006625000000000001" />
|
|
89
89
|
</g>
|
|
90
90
|
<g>
|
|
91
|
-
<rect data-type="rect" data-label="" data-x="1.
|
|
91
|
+
<rect data-type="rect" data-label="" data-x="1.8050000000000002" data-y="0.765" x="532.0754716981131" y="195.84905660377356" width="67.92452830188688" height="30.188679245283026" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.006625000000000001" />
|
|
92
92
|
</g>
|
|
93
93
|
<g>
|
|
94
|
-
<rect data-type="rect" data-label="" data-x="0.
|
|
94
|
+
<rect data-type="rect" data-label="" data-x="0.34" data-y="-0.44000000000000006" x="329.811320754717" y="358.86792452830184" width="30.188679245283026" height="67.92452830188677" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.006625000000000001" />
|
|
95
95
|
</g>
|
|
96
96
|
<g>
|
|
97
|
-
<rect data-type="rect" data-label="" data-x="
|
|
98
|
-
</g>
|
|
99
|
-
<g>
|
|
100
|
-
<rect data-type="rect" data-label="" data-x="1.706" data-y="-0.665" x="536.3957597173144" y="412.9328621908127" width="63.60424028268562" height="28.26855123674909" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.0070750000000000006" />
|
|
101
|
-
</g>
|
|
102
|
-
<g>
|
|
103
|
-
<rect data-type="rect" data-label="" data-x="-0.254" data-y="0.765" x="259.36395759717317" y="210.81272084805656" width="63.60424028268551" height="28.26855123674912" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.0070750000000000006" />
|
|
97
|
+
<rect data-type="rect" data-label="" data-x="1.63" data-y="-0.44000000000000006" x="524.5283018867924" y="358.86792452830184" width="30.188679245283083" height="67.92452830188677" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.006625000000000001" />
|
|
104
98
|
</g>
|
|
105
99
|
<g id="crosshair" style="display: none">
|
|
106
100
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -130,12 +124,12 @@ x+" data-x="1.48" data-y="-0.665" cx="536.2544169611307" cy="427.0671378091873"
|
|
|
130
124
|
|
|
131
125
|
// Calculate real coordinates using inverse transformation
|
|
132
126
|
const matrix = {
|
|
133
|
-
"a":
|
|
127
|
+
"a": 150.94339622641508,
|
|
134
128
|
"c": 0,
|
|
135
|
-
"e":
|
|
129
|
+
"e": 293.58490566037733,
|
|
136
130
|
"b": 0,
|
|
137
|
-
"d": -
|
|
138
|
-
"f":
|
|
131
|
+
"d": -150.94339622641508,
|
|
132
|
+
"f": 326.4150943396226
|
|
139
133
|
};
|
|
140
134
|
// Manually invert and apply the affine transform
|
|
141
135
|
// Since we only use translate and scale, we can directly compute:
|
|
@@ -2,88 +2,85 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="J1.1
|
|
5
|
-
x+" data-x="1.1" data-y="0.2" cx="
|
|
5
|
+
x+" data-x="1.1" data-y="0.2" cx="307.24511930585686" cy="214.38286420824303" r="3" fill="hsl(218, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="J1.2
|
|
9
|
-
x+" data-x="1.1" data-y="0" cx="
|
|
9
|
+
x+" data-x="1.1" data-y="0" cx="307.24511930585686" cy="238.67787505423001" r="3" fill="hsl(219, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="J1.3
|
|
13
|
-
x+" data-x="1.1" data-y="-0.2" cx="
|
|
13
|
+
x+" data-x="1.1" data-y="-0.2" cx="307.24511930585686" cy="262.972885900217" r="3" fill="hsl(220, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="R1.1
|
|
17
|
-
x-" data-x="0.5499999999999996" data-y="-1.7944553499999996" cx="
|
|
17
|
+
x-" data-x="0.5499999999999996" data-y="-1.7944553499999996" cx="240.4338394793926" cy="456.65943600867683" r="3" fill="hsl(226, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
20
|
<circle data-type="point" data-label="R1.2
|
|
21
|
-
x+" data-x="1.6499999999999997" data-y="-1.7944553499999996" cx="
|
|
21
|
+
x+" data-x="1.6499999999999997" data-y="-1.7944553499999996" cx="374.05639913232096" cy="456.65943600867683" r="3" fill="hsl(227, 100%, 50%, 0.8)" />
|
|
22
22
|
</g>
|
|
23
23
|
<g>
|
|
24
24
|
<circle data-type="point" data-label="C1.1
|
|
25
|
-
x-" data-x="2.3099999999999996" data-y="0.01999999999999985" cx="
|
|
25
|
+
x-" data-x="2.3099999999999996" data-y="0.01999999999999985" cx="454.229934924078" cy="236.24837396963133" r="3" fill="hsl(121, 100%, 50%, 0.8)" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<circle data-type="point" data-label="C1.2
|
|
29
|
-
x+" data-x="3.41" data-y="0.01999999999999985" cx="
|
|
29
|
+
x+" data-x="3.41" data-y="0.01999999999999985" cx="587.8524945770065" cy="236.24837396963133" r="3" fill="hsl(122, 100%, 50%, 0.8)" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
|
-
<circle data-type="point" data-label="" data-x="1.3" data-y="0.2" cx="
|
|
32
|
+
<circle data-type="point" data-label="" data-x="1.3" data-y="0.2" cx="331.5401301518438" cy="214.38286420824303" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
33
33
|
</g>
|
|
34
34
|
<g>
|
|
35
|
-
<circle data-type="point" data-label="" data-x="1.
|
|
35
|
+
<circle data-type="point" data-label="" data-x="1.2" data-y="-0.8972276749999998" cx="319.3926247288503" cy="347.6686555314534" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
36
36
|
</g>
|
|
37
37
|
<g>
|
|
38
|
-
<circle data-type="point" data-label="" data-x="1.
|
|
38
|
+
<circle data-type="point" data-label="" data-x="1.5525" data-y="-1" cx="362.2125813449024" cy="360.15292928416494" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
39
39
|
</g>
|
|
40
40
|
<g>
|
|
41
|
-
<
|
|
41
|
+
<polyline data-points="1.1,0.2 2.3099999999999996,0.01999999999999985" data-type="line" data-label="" points="307.24511930585686,214.38286420824303 454.229934924078,236.24837396963133" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
42
42
|
</g>
|
|
43
43
|
<g>
|
|
44
|
-
<polyline data-points="1.1,0
|
|
44
|
+
<polyline data-points="1.1,0 0.5499999999999996,-1.7944553499999996" data-type="line" data-label="" points="307.24511930585686,238.67787505423001 240.4338394793926,456.65943600867683" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
45
45
|
</g>
|
|
46
46
|
<g>
|
|
47
|
-
<polyline data-points="1.1
|
|
47
|
+
<polyline data-points="1.1,-0.2 1.6499999999999997,-1.7944553499999996" data-type="line" data-label="" points="307.24511930585686,262.972885900217 374.05639913232096,456.65943600867683" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
48
48
|
</g>
|
|
49
49
|
<g>
|
|
50
|
-
<polyline data-points="1.1,-0.2
|
|
50
|
+
<polyline data-points="1.1,-0.2 3.41,0.01999999999999985" data-type="line" data-label="" points="307.24511930585686,262.972885900217 587.8524945770065,236.24837396963133" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
51
51
|
</g>
|
|
52
52
|
<g>
|
|
53
|
-
<polyline data-points="1.1
|
|
53
|
+
<polyline data-points="1.6499999999999997,-1.7944553499999996 3.41,0.01999999999999985" data-type="line" data-label="" points="374.05639913232096,456.65943600867683 587.8524945770065,236.24837396963133" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
54
54
|
</g>
|
|
55
55
|
<g>
|
|
56
|
-
<polyline data-points="1.
|
|
56
|
+
<polyline data-points="1.1,0.2 1.3,0.2 1.6049999999999998,0.2 1.6049999999999998,0.01999999999999985 2.1099999999999994,0.01999999999999985 2.3099999999999996,0.01999999999999985" data-type="line" data-label="" points="307.24511930585686,214.38286420824303 331.5401301518438,214.38286420824303 368.5900216919739,214.38286420824303 368.5900216919739,236.24837396963133 429.934924078091,236.24837396963133 454.229934924078,236.24837396963133" fill="none" stroke="purple" stroke-width="1" />
|
|
57
57
|
</g>
|
|
58
58
|
<g>
|
|
59
|
-
<polyline data-points="1.1,0
|
|
59
|
+
<polyline data-points="1.1,0 1.2,0 1.2,-0.8972276749999998 0.34999999999999964,-0.8972276749999998 0.34999999999999964,-1.7944553499999996 0.5499999999999996,-1.7944553499999996" data-type="line" data-label="" points="307.24511930585686,238.67787505423001 319.3926247288503,238.67787505423001 319.3926247288503,347.6686555314534 216.1388286334056,347.6686555314534 216.1388286334056,456.65943600867683 240.4338394793926,456.65943600867683" fill="none" stroke="purple" stroke-width="1" />
|
|
60
60
|
</g>
|
|
61
61
|
<g>
|
|
62
|
-
<polyline data-points="1.1
|
|
62
|
+
<polyline data-points="1.1,-0.2 1.805,-0.2 1.805,0.5399999999999998 3.5100000000000002,0.5399999999999998 3.5100000000000002,0.01999999999999985 3.41,0.01999999999999985" data-type="line" data-label="" points="307.24511930585686,262.972885900217 392.8850325379609,262.972885900217 392.8850325379609,173.08134577006518 600,173.08134577006518 600,236.24837396963133 587.8524945770065,236.24837396963133" fill="none" stroke="purple" stroke-width="1" />
|
|
63
63
|
</g>
|
|
64
64
|
<g>
|
|
65
|
-
<polyline data-points="1.6499999999999997,-1.7944553499999996 1.
|
|
65
|
+
<polyline data-points="1.6499999999999997,-1.7944553499999996 1.7049999999999998,-1.7944553499999996 1.7049999999999998,-1 1.4000000000000001,-1 1.4000000000000001,-0.2 1.1,-0.2" data-type="line" data-label="" points="374.05639913232096,456.65943600867683 380.7375271149674,456.65943600867683 380.7375271149674,360.15292928416494 343.6876355748373,360.15292928416494 343.6876355748373,262.972885900217 307.24511930585686,262.972885900217" fill="none" stroke="purple" stroke-width="1" />
|
|
66
66
|
</g>
|
|
67
67
|
<g>
|
|
68
|
-
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="40.
|
|
68
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="40.00000000000003" y="190.08785336225606" width="267.24511930585686" height="97.18004338394792" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008232142857142858" />
|
|
69
69
|
</g>
|
|
70
70
|
<g>
|
|
71
|
-
<rect data-type="rect" data-label="schematic_component_1" data-x="1.0999999999999996" data-y="-1.7944553499999996" x="
|
|
71
|
+
<rect data-type="rect" data-label="schematic_component_1" data-x="1.0999999999999996" data-y="-1.7944553499999996" x="240.4338394793926" y="433.0379618221259" width="133.62255965292837" height="47.2429483731018" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008232142857142858" />
|
|
72
72
|
</g>
|
|
73
73
|
<g>
|
|
74
|
-
<rect data-type="rect" data-label="schematic_component_2" data-x="2.86" data-y="0.01999999999999985" x="
|
|
74
|
+
<rect data-type="rect" data-label="schematic_component_2" data-x="2.86" data-y="0.01999999999999985" x="454.229934924078" y="185.2288511930587" width="133.6225596529285" height="102.03904555314529" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008232142857142858" />
|
|
75
75
|
</g>
|
|
76
76
|
<g>
|
|
77
|
-
<rect data-type="rect" data-label="" data-x="1.3" data-y="0.42500000000000004" x="
|
|
77
|
+
<rect data-type="rect" data-label="" data-x="1.3" data-y="0.42500000000000004" x="319.3926247288503" y="159.71908980477232" width="24.295010845987008" height="54.66377440347071" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008232142857142858" />
|
|
78
78
|
</g>
|
|
79
79
|
<g>
|
|
80
|
-
<rect data-type="rect" data-label="" data-x="1.
|
|
80
|
+
<rect data-type="rect" data-label="" data-x="1.2" data-y="-1.1222276749999998" x="307.2451193058568" y="347.6686555314534" width="24.295010845987008" height="54.66377440347071" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008232142857142858" />
|
|
81
81
|
</g>
|
|
82
82
|
<g>
|
|
83
|
-
<rect data-type="rect" data-label="" data-x="1.
|
|
84
|
-
</g>
|
|
85
|
-
<g>
|
|
86
|
-
<rect data-type="rect" data-label="" data-x="3.636" data-y="0.01999999999999985" x="549.2037895585568" y="216.4629111066318" width="50.796210441443236" height="22.57609352953034" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008858928571428573" />
|
|
83
|
+
<rect data-type="rect" data-label="" data-x="1.5525" data-y="-1.225" x="350.0650759219089" y="360.15292928416494" width="24.295010845987008" height="54.66377440347071" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008232142857142858" />
|
|
87
84
|
</g>
|
|
88
85
|
<g id="crosshair" style="display: none">
|
|
89
86
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -113,12 +110,12 @@ x+" data-x="3.41" data-y="0.01999999999999985" cx="549.090909090909" cy="227.750
|
|
|
113
110
|
|
|
114
111
|
// Calculate real coordinates using inverse transformation
|
|
115
112
|
const matrix = {
|
|
116
|
-
"a":
|
|
113
|
+
"a": 121.47505422993491,
|
|
117
114
|
"c": 0,
|
|
118
|
-
"e":
|
|
115
|
+
"e": 173.62255965292843,
|
|
119
116
|
"b": 0,
|
|
120
|
-
"d": -
|
|
121
|
-
"f":
|
|
117
|
+
"d": -121.47505422993491,
|
|
118
|
+
"f": 238.67787505423001
|
|
122
119
|
};
|
|
123
120
|
// Manually invert and apply the affine transform
|
|
124
121
|
// Since we only use translate and scale, we can directly compute:
|