PDA

View Full Version : creating non overlaping triangles?



sidhu
10-02-2009, 08:00 AM
hello,

I have been tryin hard to create triangles from given vertices( that are taken from mouse input) but the thing is the triangles "shouldn't have any of its edges overlapped".
Can any1 help me..

regards
Sid

ZbuffeR
10-02-2009, 08:29 AM
Please do not cross post.
This has nothing to do with opengl.
Don't expect people to do your homework.

sidhu
10-02-2009, 08:57 AM
hey i m not expectin some1 to do it.. I was workin on creating manually created triangular meshes and i was stuck.
The code i wrote worked but it had major flaws and i thought there shud be some easier way/approach to do it.. thts why i posted it here.(i dodnt know if algoriths section or newbie section is apt for this post..so i posted in both)
"Don't expect people to do your homework."-> that was harsh!


anyways.. i can provide my full code if any1 has any idea on wht i m talkin abt...

basically I m saving the nodes into an array "PointArray[][8]"
PointArray[i][].. i denotes the vertices..
PointArray[i][0] current point x co-rdinate
PointArray[i][1] current pt y cordinate
PointArray[i][2] expected next point 1 x co-ordi
PointArray[i][3] y
PointArray[i][4] least distance from all other vertices
PointArray[i][5] expected nx pt2 x
PointArray[i][6] y
PointArray[i][7] 2nd least dist

i update all the nodes when new pt is inserted...
void updatenodes()
{
for(int i=0;i<NumPts;i++)
{ if(i>1)
{//init distance to 1st n 2nd vertices
PointArray[i][2]=PointArray[0][0];
PointArray[i][3]=PointArray[0][1];
PointArray[i][4]=dist(0,i);
printf("%0.4f\n",dist(0,i));
//printf("%0.4f\n", PointArray[i][4]);
PointArray[i][5]=PointArray[1][0];
PointArray[i][6]=PointArray[1][1];
PointArray[i][7]=dist(1,i);

internalcheck(i);

for(int j=0;j<i;j++)
{ if(j>1&amp;&amp;dist(i,j)<PointArray[i][7])
{
PointArray[i][5]=PointArray[j][0];
PointArray[i][6]=PointArray[j][1];
PointArray[i][7]=dist(i,j);

internalcheck(i);


}

}

}
}

void internalcheck(int i)
{ if( PointArray[i][7]<PointArray[i][4])
{
swap1(i,2,5);
swap1(i,3,6);
swap1(i,4,7);
}
}

ZbuffeR
10-02-2009, 12:11 PM
"shouldn't have any of its edges overlapped"
You need something to test for segment to triangle intersection, search that in any websearch engin should return useful results.
Do you need 2D or 3D collision test ?

MaxH
10-02-2009, 11:26 PM
Triangulation of a random set of points is not trivial. In fact it's a classic problem in the field of computational geometry. For starters, google 'Delauney Triangulation'.

sidhu
10-04-2009, 01:26 AM
thnx for the replies.. i ll try intersection detection.. :)

sidhu
10-04-2009, 06:36 PM
can any1 help me with implementation of "Delauney Triangulation" into opengl..

MaxH
10-04-2009, 07:57 PM
can any1 help me with implementation of "Delauney Triangulation" into opengl.. Sorry, can't do much more than point you in that direction. I've never coded it up myself. If you search around the Internet, you may find some free code that you could use. The alternative, albeit not trivial, would be to read descriptions of the algorithm and code it up yourself.

rakesh_thp
10-07-2009, 02:24 AM
hi sidhu..

Did u try out triangle segment intersection detection..?? if so please let me know..

Thanks

Dj3hut1
10-07-2009, 07:36 AM
Hello,

i've coded something similar in Java to find a planar graph ( triangle net ) for a random set of nodes in 2D :

http://algoria.de/files/PlanarGraph.zip

Source code is inclusive.
You can start the program from command line with 'java PlanarGraph'


dj3hut1

rakesh_thp
10-12-2009, 03:06 AM
Hi DJ...

I am out of knowledge with JAVA.. So can u upload ur algorithm..?? That will be so kind enough of u..