[postgis-users] Problem with 3D polygon intersection test
Ed Linde
edolinde at gmail.com
Tue Oct 30 02:56:36 PDT 2012
Ok, for a polygon, is there a good postgis function that can return the
edges to me in the
right sequence? Or at least the points that constitute the polygon in the
right order, so I can
generate the edges in a script?
Thanks,
Ed
On Tue, Oct 30, 2012 at 10:46 AM, Ed Linde <edolinde at gmail.com> wrote:
> Ah drat! Ok then I have to basically do edge intersection tests by myself.
> Ah well. bad news! :(
>
>
> On Tue, Oct 30, 2012 at 10:44 AM, Nicolas Ribot <nicolas.ribot at gmail.com>wrote:
>
>> Hi,
>>
>> st_intersection is only suitable for 2D operations. Third dimension is
>> not taken into account.
>>
>> Nicolas
>>
>> On 30 October 2012 09:44, Ed Linde <edolinde at gmail.com> wrote:
>>
>>> Hi All,
>>> Is there a simpler test I can do? I am quite sure that I am probably not
>>> using the right
>>> function in my SQL, or not doing the intersection test correctly. Is
>>> there any simpler
>>> way to test this 3D intersection? Am waiting on the postgis gurus to
>>> come along and
>>> give me some ideas, coz I am at my wits ends on this one! :) The
>>> polygons look good
>>> to me when I visualize them, but don't get how all triangles are found
>>> as intersecting?
>>> Anyway will wait.
>>>
>>> Cheers,
>>> Ed
>>>
>>> On Tue, Oct 30, 2012 at 9:00 AM, Ed Linde <edolinde at gmail.com> wrote:
>>>
>>>> Hi All,
>>>> I am having some troubles getting the *ST_Intersect* function to work
>>>> with 3D polygons.
>>>> I have a table to hold triangles as polygons in *"small_tris"*
>>>> Another table for holding the polygonal faces of a 3D voronoi diagram
>>>> in *"vfaces"*
>>>> So now I am trying to do an intersection between the triangles and the
>>>> voronoi faces
>>>> to get the triangles that intersect with the faces. And it seems that
>>>> *ALL* triangles
>>>> are intersecting. I have attached a PDF where I have plotted the
>>>> triangles and the
>>>> voronoi cells. so the box around in red and blue with a major face
>>>> going through is
>>>> the voronoi diagram. The Voronoi partition in 3D is shown at the bottom
>>>> too for clarity
>>>> Can someone please help and let me know what am I doing wrong here?
>>>> Is the select assuming something? So the polygons are flat and the
>>>> intersections
>>>> should just be lines or points. I am under some pressure to get this to
>>>> work, so if
>>>> anyone needs more information to help, the please let me know! :)
>>>>
>>>> Cheers,
>>>> Ed
>>>>
>>>> *-- TABLE SCHEMAS*
>>>> bounds=# \d vfaces;
>>>> Table "public.vfaces"
>>>> Column | Type | Modifiers
>>>> ----------+----------+-----------
>>>> gen_id | integer |
>>>> geomtext | geometry |
>>>>
>>>> bounds=# \d small_tris;
>>>> Table "public.small_tris"
>>>> Column | Type | Modifiers
>>>> ----------+----------+-----------
>>>> id | integer | not null
>>>> v0 | integer |
>>>> v1 | integer |
>>>> v2 | integer |
>>>> geomtext | geometry |
>>>> Indexes:
>>>> "small_tris_pkey" PRIMARY KEY, btree (id)
>>>> "small_idx" gist (geomtext)
>>>>
>>>>
>>>> *
>>>> -- TABLE CONTENT*
>>>> bounds=# select id, st_astext( geomtext ) from small_tris;
>>>> id | st_astext
>>>> ----+-------------------------------------------------------
>>>> 0 | POLYGON Z ((10 10 805,20 10 809,10 20 814,10 10 805))
>>>> 1 | POLYGON Z ((10 20 814,20 10 809,20 20 819,10 20 814))
>>>> 2 | POLYGON Z ((20 20 819,30 10 809,30 20 812,20 20 819))
>>>> 3 | POLYGON Z ((30 10 809,20 20 819,20 10 809,30 10 809))
>>>> 4 | POLYGON Z ((30 20 812,30 10 809,40 10 826,30 20 812))
>>>> 5 | POLYGON Z ((20 20 819,30 20 812,20 30 827,20 20 819))
>>>> 6 | POLYGON Z ((10 20 814,20 20 819,20 30 827,10 20 814))
>>>> 7 | POLYGON Z ((10 40 805,10 30 814,20 30 827,10 40 805))
>>>> 8 | POLYGON Z ((10 50 804,10 40 805,20 40 807,10 50 804))
>>>> 9 | POLYGON Z ((20 30 827,20 40 807,10 40 805,20 30 827))
>>>> 10 | POLYGON Z ((30 30 817,20 40 807,20 30 827,30 30 817))
>>>> 11 | POLYGON Z ((30 40 816,20 50 809,20 40 807,30 40 816))
>>>> 12 | POLYGON Z ((20 40 807,20 50 809,10 50 804,20 40 807))
>>>> 13 | POLYGON Z ((10 30 814,10 20 814,20 30 827,10 30 814))
>>>> 14 | POLYGON Z ((30 30 817,20 30 827,30 20 812,30 30 817))
>>>> 15 | POLYGON Z ((30 20 812,40 20 823,30 30 817,30 20 812))
>>>> 16 | POLYGON Z ((40 20 823,30 20 812,40 10 826,40 20 823))
>>>> 17 | POLYGON Z ((40 20 823,40 10 826,50 10 803,40 20 823))
>>>> 18 | POLYGON Z ((30 30 817,40 20 823,40 30 814,30 30 817))
>>>> 19 | POLYGON Z ((40 20 823,50 20 808,40 30 814,40 20 823))
>>>> 20 | POLYGON Z ((50 20 808,40 20 823,50 10 803,50 20 808))
>>>> 21 | POLYGON Z ((40 30 814,50 20 808,50 30 816,40 30 814))
>>>> 22 | POLYGON Z ((30 30 817,40 30 814,40 40 800,30 30 817))
>>>> 23 | POLYGON Z ((30 40 816,40 40 800,30 50 813,30 40 816))
>>>> 24 | POLYGON Z ((30 40 816,30 30 817,40 40 800,30 40 816))
>>>> 25 | POLYGON Z ((30 50 813,40 40 800,40 50 817,30 50 813))
>>>> 26 | POLYGON Z ((30 40 816,30 50 813,20 50 809,30 40 816))
>>>> 27 | POLYGON Z ((50 40 821,40 50 817,40 40 800,50 40 821))
>>>> 28 | POLYGON Z ((50 50 809,40 50 817,50 40 821,50 50 809))
>>>> 29 | POLYGON Z ((50 40 821,40 40 800,50 30 816,50 40 821))
>>>> 30 | POLYGON Z ((40 30 814,50 30 816,40 40 800,40 30 814))
>>>> 31 | POLYGON Z ((30 30 817,30 40 816,20 40 807,30 30 817))
>>>> (32 rows)
>>>>
>>>> select st_astext(geomtext) from vfaces;
>>>>
>>>> st_astext
>>>>
>>>> -----------------------------------------------------------------------------------------------
>>>> POLYGON Z ((51 17.8 799,9 38.8 799,9 51 819.33333333333,19.4 51 828,51
>>>> 35.2 828,51 17.8 799))
>>>> POLYGON Z ((51 17.8 799,9 38.8 799,9 51 799,51 51 799,51 17.8 799))
>>>> POLYGON Z ((51 35.2 828,19.4 51 828,51 51 828,51 35.2 828))
>>>> POLYGON Z ((9 9 799,9 38.8 799,51 17.8 799,51 9 799,9 9 799))
>>>> POLYGON Z ((51 17.8 799,9 38.8 799,9 51 819.33333333333,19.4 51 828,51
>>>> 35.2 828,51 17.8 799))
>>>> POLYGON Z ((9 9 828,9 51 828,19.4 51 828,51 35.2 828,51 9 828,9 9 828))
>>>> (6 rows)
>>>>
>>>> *select distinct a.id
>>>> from small_tris a, vfaces b
>>>> where st_intersects (a.geomtext, b.geomtext)
>>>> order by a.id;*
>>>> id
>>>> ----
>>>> 0
>>>> 1
>>>> 2
>>>> 3
>>>> 4
>>>> 5
>>>> 6
>>>> 7
>>>> 8
>>>> 9
>>>> 10
>>>> 11
>>>> 12
>>>> 13
>>>> 14
>>>> 15
>>>> 16
>>>> 17
>>>> 18
>>>> 19
>>>> 20
>>>> 21
>>>> 22
>>>> 23
>>>> 24
>>>> 25
>>>> 26
>>>> 27
>>>> 28
>>>> 29
>>>> 30
>>>> 31
>>>> (32 rows)
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> postgis-users mailing list
>>> postgis-users at postgis.refractions.net
>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>
>>>
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20121030/729b7ce0/attachment.html>
More information about the postgis-users
mailing list