Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9d5fa49

Browse files
committed
Add spoly(spoint[]) constructor function
1 parent81939cf commit9d5fa49

File tree

5 files changed

+135
-54
lines changed

5 files changed

+135
-54
lines changed

‎expected/poly.out

Lines changed: 50 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,25 @@ SELECT spoint '(0.15,0.10)' @ :poly; -- point inside polygon
1212
t
1313
(1 row)
1414

15-
SELECT spoint '(0.20,0.00)' @ :poly; -- point contained polygon
15+
SELECT spoint '(0.20,0.00)' @ :poly; -- point contained polygon
1616
?column?
1717
----------
1818
t
1919
(1 row)
2020

21-
SELECT spoint '(0.10,0.10)' @ :poly; -- point contained polygon
21+
SELECT spoint '(0.10,0.10)' @ :poly; -- point contained polygon
2222
?column?
2323
----------
2424
t
2525
(1 row)
2626

27-
SELECT spoint '(0.25,0.50)' @ :poly; -- point outside polygon
27+
SELECT spoint '(0.25,0.50)' @ :poly; -- point outside polygon
2828
?column?
2929
----------
3030
f
3131
(1 row)
3232

33-
SELECT spoint '(0.25,0.00)' @ :poly; -- point outside polygon
33+
SELECT spoint '(0.25,0.00)' @ :poly; -- point outside polygon
3434
?column?
3535
----------
3636
f
@@ -42,13 +42,13 @@ SELECT scircle '<(0.15,0.10),0.03>' @ :poly; -- circle inside polygon
4242
t
4343
(1 row)
4444

45-
SELECT scircle '<(0.20,0.00),0.00>' @ :poly; -- circle contained polygon
45+
SELECT scircle '<(0.20,0.00),0.00>' @ :poly; -- circle contained polygon
4646
?column?
4747
----------
4848
t
4949
(1 row)
5050

51-
SELECT scircle '<(0.20,0.30),0.05>' @ :poly; -- circle outside polygon
51+
SELECT scircle '<(0.20,0.30),0.05>' @ :poly; -- circle outside polygon
5252
?column?
5353
----------
5454
f
@@ -72,13 +72,13 @@ SELECT scircle '<(0.15,0.10),0.03>' && :poly; -- circle inside polygon
7272
t
7373
(1 row)
7474

75-
SELECT scircle '<(0.20,0.00),0.00>' && :poly; -- circle contained polygon
75+
SELECT scircle '<(0.20,0.00),0.00>' && :poly; -- circle contained polygon
7676
?column?
7777
----------
7878
t
7979
(1 row)
8080

81-
SELECT scircle '<(0.20,0.30),0.05>' && :poly; -- circle outside polygon
81+
SELECT scircle '<(0.20,0.30),0.05>' && :poly; -- circle outside polygon
8282
?column?
8383
----------
8484
f
@@ -96,13 +96,13 @@ SELECT scircle '<(0.25,0.00),0.10>' && :poly; -- circle overlaps polyg
9696
t
9797
(1 row)
9898

99-
SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) @ :poly; -- line touches polygon
99+
SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) @ :poly; -- line touches polygon
100100
?column?
101101
----------
102102
f
103103
(1 row)
104104

105-
SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) @ :poly; -- line touches polygon
105+
SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) @ :poly; -- line touches polygon
106106
?column?
107107
----------
108108
f
@@ -114,7 +114,7 @@ SELECT sline ( spoint '(0.50, 0.00)', spoint '(0.50,0.20)' ) @ :poly; -- line
114114
f
115115
(1 row)
116116

117-
SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) @ :poly; -- line touches and inside polygon
117+
SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) @ :poly; -- line touches and inside polygon
118118
?column?
119119
----------
120120
t
@@ -138,13 +138,13 @@ SELECT sline ( spoint '(0.24, 0.17)', spoint '(0.25,0.14)' ) @ :poly; -- line
138138
t
139139
(1 row)
140140

141-
SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) && :poly; -- line touches polygon
141+
SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) && :poly; -- line touches polygon
142142
?column?
143143
----------
144144
t
145145
(1 row)
146146

147-
SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) && :poly; -- line touches polygon
147+
SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) && :poly; -- line touches polygon
148148
?column?
149149
----------
150150
t
@@ -156,7 +156,7 @@ SELECT sline ( spoint '(0.50, 0.00)', spoint '(0.50,0.20)' ) && :poly; -- line
156156
t
157157
(1 row)
158158

159-
SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) && :poly; -- line touches and inside polygon
159+
SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) && :poly; -- line touches and inside polygon
160160
?column?
161161
----------
162162
t
@@ -342,7 +342,32 @@ SELECT spoly_deg(ARRAY[10.0, 0.0, 10.0, 1.0, 15.0, 0.0]);
342342
{(10d , 0d),(10d , 1d),(15d , 0d)}
343343
(1 row)
344344

345-
-- incorrect input -----
345+
--- Constructors
346+
SELECT spoly(NULL::spoint[]);
347+
spoly
348+
-------
349+
350+
(1 row)
351+
352+
SELECT spoly(ARRAY[]::spoint[]);
353+
ERROR: spoly_deg: invalid number of arguments (must be >= 3)
354+
SELECT spoly(ARRAY[spoint_deg(0, 0)]);
355+
ERROR: spoly_deg: invalid number of arguments (must be >= 3)
356+
SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0)]);
357+
ERROR: spoly_deg: invalid number of arguments (must be >= 3)
358+
SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0), spoint_deg(10,10)]);
359+
spoly
360+
------------------------------------
361+
{(0d , 0d),(10d , 0d),(10d , 10d)}
362+
(1 row)
363+
364+
SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0), spoint_deg(10,10), spoint_deg(0, 10)]);
365+
spoly
366+
-----------------------------------------------
367+
{(0d , 0d),(10d , 0d),(10d , 10d),(0d , 10d)}
368+
(1 row)
369+
370+
--- incorrect input -----
346371
SELECT spoly '{(10d,0d),(10d,1d)}';
347372
ERROR: spherepoly_in: more than two points needed
348373
LINE 1: SELECT spoly '{(10d,0d),(10d,1d)}';
@@ -1211,7 +1236,7 @@ SELECT spoly '{(0d,-88d),(90d,-88d),(180d,-88d),(270d,-88d)}' @ spoly '{(0d,89d)
12111236
(1 row)
12121237

12131238
--- spoly ~ spoly
1214-
--- should be true
1239+
--- should be true
12151240
SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' ~ spoly '{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}';
12161241
?column?
12171242
----------
@@ -1280,7 +1305,7 @@ SELECT spoly '{(0d,89d),(90d,89d),(180d,89d),(270d,89d)}' ~ spoly '{(0d,-88d),(9
12801305
(1 row)
12811306

12821307
--- spoly && spoly
1283-
--- should be true
1308+
--- should be true
12841309
SELECT spoly '{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}' && spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}';
12851310
?column?
12861311
----------
@@ -1417,7 +1442,6 @@ SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' && spoly '{(179d,-1d),(179d
14171442
--
14181443
-- ellipse and polygon
14191444
--
1420-
14211445
-- negators , commutator @,&&
14221446
SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{10d,5d},(280d,-20d),90d>';
14231447
?column?
@@ -1564,49 +1588,49 @@ SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !&& spoly '{(280d,-11d),(280d,-12
15641588
(1 row)
15651589

15661590
-- ellipse is point
1567-
SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1591+
SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
15681592
?column?
15691593
----------
15701594
f
15711595
(1 row)
15721596

1573-
SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1597+
SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
15741598
?column?
15751599
----------
15761600
f
15771601
(1 row)
15781602

1579-
SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1603+
SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
15801604
?column?
15811605
----------
15821606
f
15831607
(1 row)
15841608

1585-
SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1609+
SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
15861610
?column?
15871611
----------
15881612
t
15891613
(1 row)
15901614

1591-
SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1615+
SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
15921616
?column?
15931617
----------
15941618
f
15951619
(1 row)
15961620

1597-
SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1621+
SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
15981622
?column?
15991623
----------
16001624
t
16011625
(1 row)
16021626

1603-
SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1627+
SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
16041628
?column?
16051629
----------
16061630
f
16071631
(1 row)
16081632

1609-
SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1633+
SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
16101634
?column?
16111635
----------
16121636
t

‎pgs_polygon.sql.in

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -948,6 +948,15 @@ CREATE FUNCTION spoly(float8[])
948948
COMMENT ON FUNCTION spoly(float8[]) IS
949949
'creates spoly from array of numbers in radians';
950950

951+
CREATE FUNCTION spoly(spoint[])
952+
RETURNS spoly
953+
AS 'MODULE_PATHNAME', 'spherepoly_from_point_array'
954+
LANGUAGE 'c'
955+
IMMUTABLE STRICT PARALLEL SAFE;
956+
957+
COMMENT ON FUNCTION spoly(spoint[]) IS
958+
'creates spoly from an array of points';
959+
951960
CREATE FUNCTION spoly_deg(float8[])
952961
RETURNS spoly
953962
AS 'MODULE_PATHNAME', 'spherepoly_deg'
@@ -987,7 +996,6 @@ CREATE AGGREGATE spoly (
987996
finalfunc = spoly_add_points_fin_aggr
988997
);
989998

990-
991999
--
9921000
-- polygon is convex
9931001
--

‎sql/poly.sql

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,31 @@ SET extra_float_digits = 0;
77

88
\set poly'spoly\'{(0.1,0),(0.2,0),(0.2,0.1),(0.3,0.1),(0.3,-0.1),(0.4,-0.1),(0.5,0.1),(0.4,0.2),(0.1,0.2)}\''
99
SELECT spoint'(0.15,0.10)' @ :poly;-- point inside polygon
10-
SELECT spoint'(0.20,0.00)' @ :poly;-- point contained polygon
11-
SELECT spoint'(0.10,0.10)' @ :poly;-- point contained polygon
12-
SELECT spoint'(0.25,0.50)' @ :poly;-- point outside polygon
13-
SELECT spoint'(0.25,0.00)' @ :poly;-- point outside polygon
10+
SELECT spoint'(0.20,0.00)' @ :poly;-- point contained polygon
11+
SELECT spoint'(0.10,0.10)' @ :poly;-- point contained polygon
12+
SELECT spoint'(0.25,0.50)' @ :poly;-- point outside polygon
13+
SELECT spoint'(0.25,0.00)' @ :poly;-- point outside polygon
1414
SELECT scircle'<(0.15,0.10),0.03>' @ :poly;-- circle inside polygon
15-
SELECT scircle'<(0.20,0.00),0.00>' @ :poly;-- circle contained polygon
16-
SELECT scircle'<(0.20,0.30),0.05>' @ :poly;-- circle outside polygon
15+
SELECT scircle'<(0.20,0.00),0.00>' @ :poly;-- circle contained polygon
16+
SELECT scircle'<(0.20,0.30),0.05>' @ :poly;-- circle outside polygon
1717
SELECT scircle'<(0.25,0.00),0.05>' @ :poly;-- circle overlaps polygon
1818
SELECT scircle'<(0.25,0.00),0.10>' @ :poly;-- circle overlaps polygon
1919
SELECT scircle'<(0.15,0.10),0.03>' && :poly;-- circle inside polygon
20-
SELECT scircle'<(0.20,0.00),0.00>' && :poly;-- circle contained polygon
21-
SELECT scircle'<(0.20,0.30),0.05>' && :poly;-- circle outside polygon
20+
SELECT scircle'<(0.20,0.00),0.00>' && :poly;-- circle contained polygon
21+
SELECT scircle'<(0.20,0.30),0.05>' && :poly;-- circle outside polygon
2222
SELECT scircle'<(0.25,0.00),0.05>' && :poly;-- circle overlaps polygon
2323
SELECT scircle'<(0.25,0.00),0.10>' && :poly;-- circle overlaps polygon
24-
SELECT sline ( spoint'(0.00, 0.00)', spoint'(0.10,0.20)' ) @ :poly;-- line touches polygon
25-
SELECT sline ( spoint'(0.00, 0.10)', spoint'(0.10,0.10)' ) @ :poly;-- line touches polygon
24+
SELECT sline ( spoint'(0.00, 0.00)', spoint'(0.10,0.20)' ) @ :poly;-- line touches polygon
25+
SELECT sline ( spoint'(0.00, 0.10)', spoint'(0.10,0.10)' ) @ :poly;-- line touches polygon
2626
SELECT sline ( spoint'(0.50, 0.00)', spoint'(0.50,0.20)' ) @ :poly;-- line touches polygon
27-
SELECT sline ( spoint'(0.10, 0.20)', spoint'(0.20,0.00)' ) @ :poly;-- line touches and inside polygon
27+
SELECT sline ( spoint'(0.10, 0.20)', spoint'(0.20,0.00)' ) @ :poly;-- line touches and inside polygon
2828
SELECT sline ( spoint'(0.45,-0.20)', spoint'(0.45,0.20)' ) @ :poly;-- line overlaps polygon
2929
SELECT sline ( spoint'(0.45, 0.10)', spoint'(0.45,0.20)' ) @ :poly;-- line overlaps polygon
3030
SELECT sline ( spoint'(0.24, 0.17)', spoint'(0.25,0.14)' ) @ :poly;-- line inside polygon
31-
SELECT sline ( spoint'(0.00, 0.00)', spoint'(0.10,0.20)' ) && :poly;-- line touches polygon
32-
SELECT sline ( spoint'(0.00, 0.10)', spoint'(0.10,0.10)' ) && :poly;-- line touches polygon
31+
SELECT sline ( spoint'(0.00, 0.00)', spoint'(0.10,0.20)' ) && :poly;-- line touches polygon
32+
SELECT sline ( spoint'(0.00, 0.10)', spoint'(0.10,0.10)' ) && :poly;-- line touches polygon
3333
SELECT sline ( spoint'(0.50, 0.00)', spoint'(0.50,0.20)' ) && :poly;-- line touches polygon
34-
SELECT sline ( spoint'(0.10, 0.20)', spoint'(0.20,0.00)' ) && :poly;-- line touches and inside polygon
34+
SELECT sline ( spoint'(0.10, 0.20)', spoint'(0.20,0.00)' ) && :poly;-- line touches and inside polygon
3535
SELECT sline ( spoint'(0.45,-0.20)', spoint'(0.45,0.20)' ) && :poly;-- line overlaps polygon
3636
SELECT sline ( spoint'(0.45, 0.10)', spoint'(0.45,0.20)' ) && :poly;-- line overlaps polygon
3737
SELECT sline ( spoint'(0.24, 0.17)', spoint'(0.25,0.14)' ) && :poly;-- line inside polygon
@@ -86,7 +86,21 @@ SELECT spoly_deg(ARRAY[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]);
8686

8787
SELECT spoly_deg(ARRAY[10.0,0.0,10.0,1.0,15.0,0.0]);
8888

89-
-- incorrect input -----
89+
--- Constructors
90+
91+
SELECT spoly(NULL::spoint[]);
92+
93+
SELECT spoly(ARRAY[]::spoint[]);
94+
95+
SELECT spoly(ARRAY[spoint_deg(0,0)]);
96+
97+
SELECT spoly(ARRAY[spoint_deg(0,0), spoint_deg(10,0)]);
98+
99+
SELECT spoly(ARRAY[spoint_deg(0,0), spoint_deg(10,0), spoint_deg(10,10)]);
100+
101+
SELECT spoly(ARRAY[spoint_deg(0,0), spoint_deg(10,0), spoint_deg(10,10), spoint_deg(0,10)]);
102+
103+
--- incorrect input -----
90104

91105
SELECT spoly'{(10d,0d),(10d,1d)}';
92106

@@ -457,7 +471,7 @@ SELECT spoly '{(0d,-88d),(90d,-88d),(180d,-88d),(270d,-88d)}' @ spoly '{(0d,89d)
457471

458472
--- spoly ~ spoly
459473

460-
--- should be true
474+
--- should be true
461475

462476
SELECT spoly'{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' ~ spoly'{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}';
463477

@@ -485,7 +499,7 @@ SELECT spoly '{(0d,89d),(90d,89d),(180d,89d),(270d,89d)}' ~ spoly '{(0d,-88d),(9
485499

486500
--- spoly && spoly
487501

488-
--- should be true
502+
--- should be true
489503

490504
SELECT spoly'{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}' && spoly'{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}';
491505

@@ -536,7 +550,7 @@ SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' && spoly '{(179d,-1d),(179d
536550
--
537551
-- ellipse and polygon
538552
--
539-
553+
540554
-- negators , commutator @,&&
541555

542556
SELECT spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse'<{10d,5d},(280d,-20d),90d>';
@@ -565,14 +579,14 @@ SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !&& spoly '{(280d, -9d),(280d,-12
565579
SELECT sellipse'<{10d,5d},(280d,-20d),90d>' !&& spoly'{(280d,-11d),(280d,-12d),(279d, -12d)}';
566580

567581
-- ellipse is point
568-
SELECT spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse'<{0d,0d},(280d,-20d),90d>';
569-
SELECT spoly'{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse'<{0d,0d},(280d,-20d),90d>';
570-
SELECT spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse'<{0d,0d},(280d,-20d),90d>';
571-
SELECT spoly'{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse'<{0d,0d},(280d,-20d),90d>';
572-
SELECT sellipse'<{0d,0d},(280d,-20d),90d>' @ spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
573-
SELECT sellipse'<{0d,0d},(280d,-20d),90d>' @ spoly'{(280d,-11d),(280d,-20d),(279d, -12d)}';
574-
SELECT sellipse'<{0d,0d},(280d,-20d),90d>' && spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
575-
SELECT sellipse'<{0d,0d},(280d,-20d),90d>' && spoly'{(280d,-11d),(280d,-20d),(279d, -12d)}';
582+
SELECT spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse'<{0d,0d},(280d,-20d),90d>';
583+
SELECT spoly'{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse'<{0d,0d},(280d,-20d),90d>';
584+
SELECT spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse'<{0d,0d},(280d,-20d),90d>';
585+
SELECT spoly'{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse'<{0d,0d},(280d,-20d),90d>';
586+
SELECT sellipse'<{0d,0d},(280d,-20d),90d>' @ spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
587+
SELECT sellipse'<{0d,0d},(280d,-20d),90d>' @ spoly'{(280d,-11d),(280d,-20d),(279d, -12d)}';
588+
SELECT sellipse'<{0d,0d},(280d,-20d),90d>' && spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
589+
SELECT sellipse'<{0d,0d},(280d,-20d),90d>' && spoly'{(280d,-11d),(280d,-20d),(279d, -12d)}';
576590

577591
-- ellipse is circle
578592
SELECT spoly'{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse'<{5d,5d},(280d,-20d),90d>';

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp