📄 geometry.sql
字号:
---- Points--SELECT '' AS four, center(f1) AS center FROM BOX_TBL;SELECT '' AS four, (@@ f1) AS center FROM BOX_TBL;SELECT '' AS six, point(f1) AS center FROM CIRCLE_TBL;SELECT '' AS six, (@@ f1) AS center FROM CIRCLE_TBL;SELECT '' AS two, (@@ f1) AS center FROM POLYGON_TBL WHERE (# f1) > 2;-- "is horizontal" functionSELECT '' AS two, p1.f1 FROM POINT_TBL p1 WHERE ishorizontal(p1.f1, '(0,0)'::point);-- "is horizontal" operatorSELECT '' AS two, p1.f1 FROM POINT_TBL p1 WHERE p1.f1 ?- '(0,0)'::point;-- "is vertical" functionSELECT '' AS one, p1.f1 FROM POINT_TBL p1 WHERE isvertical(p1.f1, '(5.1,34.5)'::point);-- "is vertical" operatorSELECT '' AS one, p1.f1 FROM POINT_TBL p1 WHERE p1.f1 ?| '(5.1,34.5)'::point;---- Line segments---- intersectionSELECT '' AS count, p.f1, l.s, l.s # p.f1 AS intersection FROM LSEG_TBL l, POINT_TBL p;-- closest pointSELECT '' AS thirty, p.f1, l.s, p.f1 ## l.s AS closest FROM LSEG_TBL l, POINT_TBL p;---- Lines------ Boxes--SELECT '' as six, box(f1) AS box FROM CIRCLE_TBL;-- translationSELECT '' AS twentyfour, b.f1 + p.f1 AS translation FROM BOX_TBL b, POINT_TBL p;SELECT '' AS twentyfour, b.f1 - p.f1 AS translation FROM BOX_TBL b, POINT_TBL p;-- scaling and rotationSELECT '' AS twentyfour, b.f1 * p.f1 AS rotation FROM BOX_TBL b, POINT_TBL p;SELECT '' AS twenty, b.f1 / p.f1 AS rotation FROM BOX_TBL b, POINT_TBL p WHERE (p.f1 <-> '(0,0)'::point) >= 1;---- Paths--SET geqo TO 'off';SELECT '' AS eight, points(f1) AS npoints, f1 AS path FROM PATH_TBL;SELECT '' AS four, path(f1) FROM POLYGON_TBL;-- translationSELECT '' AS eight, p1.f1 + '(10,10)'::point AS dist_add FROM PATH_TBL p1;-- scaling and rotationSELECT '' AS eight, p1.f1 * '(2,-1)'::point AS dist_mul FROM PATH_TBL p1;RESET geqo;---- Polygons---- containmentSELECT '' AS twentyfour, p.f1, poly.f1, poly.f1 ~ p.f1 AS contains FROM POLYGON_TBL poly, POINT_TBL p;SELECT '' AS twentyfour, p.f1, poly.f1, p.f1 @ poly.f1 AS contained FROM POLYGON_TBL poly, POINT_TBL p;SELECT '' AS four, points(f1) AS npoints, f1 AS polygon FROM POLYGON_TBL;SELECT '' AS four, polygon(f1) FROM BOX_TBL;SELECT '' AS four, polygon(f1) FROM PATH_TBL WHERE isclosed(f1);SELECT '' AS four, f1 AS open_path, polygon( pclose(f1)) AS polygon FROM PATH_TBL WHERE isopen(f1);-- convert circles to polygons using the default number of pointsSELECT '' AS six, polygon(f1) FROM CIRCLE_TBL;-- convert the circle to an 8-point polygonSELECT '' AS six, polygon(8, f1) FROM CIRCLE_TBL;---- Circles--SELECT '' AS six, circle(f1, 50.0) FROM POINT_TBL;SELECT '' AS four, circle(f1) FROM BOX_TBL;SELECT '' AS two, circle(f1) FROM POLYGON_TBL WHERE (# f1) >= 3;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, point using <<;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -