88 lines
1.5 KiB
MySQL
88 lines
1.5 KiB
MySQL
|
--
|
||
|
-- Points
|
||
|
--
|
||
|
|
||
|
SELECT point(f1) FROM CIRCLE_TBL;
|
||
|
|
||
|
SELECT '' AS two, p1.f1
|
||
|
FROM POINT_TBL p1
|
||
|
WHERE ishorizontal(p1.f1, '(0,0)'::point);
|
||
|
|
||
|
SELECT '' AS one, p1.f1
|
||
|
FROM POINT_TBL p1
|
||
|
WHERE isvertical(p1.f1, '(5.1,34.5)'::point);
|
||
|
|
||
|
--
|
||
|
-- Line segments
|
||
|
--
|
||
|
|
||
|
--
|
||
|
-- Lines
|
||
|
--
|
||
|
|
||
|
--
|
||
|
-- Boxes
|
||
|
--
|
||
|
|
||
|
SELECT center(f1) FROM BOX_TBL;
|
||
|
|
||
|
SELECT box(f1) FROM CIRCLE_TBL;
|
||
|
|
||
|
-- translation
|
||
|
SELECT '' AS count, b.f1 + p.f1
|
||
|
FROM BOX_TBL b, POINT_TBL p;
|
||
|
|
||
|
-- scaling and rotation
|
||
|
SELECT '' AS count, b.f1 * p.f1
|
||
|
FROM BOX_TBL b, POINT_TBL p;
|
||
|
|
||
|
--
|
||
|
-- Paths
|
||
|
--
|
||
|
|
||
|
SET geqo TO 'off';
|
||
|
|
||
|
SELECT points(f1) AS npoints, f1 AS path FROM PATH_TBL;
|
||
|
|
||
|
SELECT path(f1) FROM POLYGON_TBL;
|
||
|
|
||
|
-- translation
|
||
|
SELECT '' AS eight, p1.f1 + '(10,10)'::point AS dist_add
|
||
|
FROM PATH_TBL p1;
|
||
|
|
||
|
-- scaling and rotation
|
||
|
SELECT '' AS eight, p1.f1 * '(2,-1)'::point AS dist_mul
|
||
|
FROM PATH_TBL p1;
|
||
|
|
||
|
RESET geqo;
|
||
|
|
||
|
--
|
||
|
-- Polygons
|
||
|
--
|
||
|
|
||
|
SELECT points(f1) AS npoints, f1 AS polygon FROM POLYGON_TBL;
|
||
|
|
||
|
SELECT polygon(f1) FROM BOX_TBL;
|
||
|
|
||
|
SELECT polygon(f1) FROM PATH_TBL WHERE isclosed(f1);
|
||
|
|
||
|
SELECT f1 AS open_path, polygon( pclose(f1)) AS polygon FROM PATH_TBL WHERE isopen(f1);
|
||
|
|
||
|
-- convert circles to polygons using the default number of points
|
||
|
SELECT polygon(f1) FROM CIRCLE_TBL;
|
||
|
|
||
|
-- convert the circle to an 8-point polygon
|
||
|
SELECT polygon(8, f1) FROM CIRCLE_TBL;
|
||
|
|
||
|
--
|
||
|
-- Circles
|
||
|
--
|
||
|
|
||
|
SELECT circle( f1, 50.0) FROM POINT_TBL;
|
||
|
|
||
|
SELECT '' AS twentyfour, c1.f1 AS circle, p1.f1 AS point, (p1.f1 <===> c1.f1) AS distance
|
||
|
from CIRCLE_TBL c1, POINT_TBL p1
|
||
|
WHERE (p1.f1 <===> c1.f1) > 0
|
||
|
ORDER BY distance, circle;
|
||
|
|