--
-- polygon logic
--
--- 3 o
--- |
--- 2 + |
--- / |
--- 1 # o +
--- / |
--- 0 #-----o-+
+-- 3 o
+-- |
+-- 2 + |
+-- / |
+-- 1 # +
+-- / o |
+-- 0 #-----o-+
--
--- 0 1 2 3 4
+-- 0 1 2 3 4
--
CREATE TABLE POLYGON_TBL(f1 polygon);
INSERT INTO POLYGON_TBL(f1) VALUES ('(2.0,0.0),(2.0,4.0),(0.0,0.0)');
--
-- polygon logic
--
--- 3 o
--- |
--- 2 + |
--- / |
--- 1 / o +
+-- 3 o
+-- /|
+-- 2 + |
+-- / |
+-- 1 / o +
-- / |
--- 0 +-----o-+
+-- 0 +-----o-+
+--
+-- 0 1 2 3 4
--
--- 0 1 2 3 4
--
-- left of
SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
(1 row)
-- +--------------------+
--- | *---* 1
+-- | *---* 1
-- | + | |
-- | 2 *---*
-- +--------------------+
--- 3
+-- 3
-- Edges 1-2, 2-3 are not shown on picture
SELECT '((0,4),(6,4),(1,2),(6,0),(0,0))'::polygon && '((2,1),(2,3),(3,3),(3,1))'::polygon AS "true";
true
--
-- polygon logic
--
--- 3 o
--- |
--- 2 + |
--- / |
--- 1 # o +
--- / |
--- 0 #-----o-+
+-- 3 o
+-- |
+-- 2 + |
+-- / |
+-- 1 # +
+-- / o |
+-- 0 #-----o-+
--
--- 0 1 2 3 4
+-- 0 1 2 3 4
--
CREATE TABLE POLYGON_TBL(f1 polygon);
--
-- polygon logic
--
--- 3 o
--- |
--- 2 + |
--- / |
--- 1 / o +
+-- 3 o
+-- /|
+-- 2 + |
+-- / |
+-- 1 / o +
-- / |
--- 0 +-----o-+
+-- 0 +-----o-+
+--
+-- 0 1 2 3 4
--
--- 0 1 2 3 4
--
-- left of
SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' && polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true;
-- +--------------------+
--- | *---* 1
+-- | *---* 1
-- | + | |
-- | 2 *---*
-- +--------------------+
--- 3
+-- 3
-- Edges 1-2, 2-3 are not shown on picture
SELECT '((0,4),(6,4),(1,2),(6,0),(0,0))'::polygon && '((2,1),(2,3),(3,3),(3,1))'::polygon AS "true";