Scomposizione di un quadrilatero in 2 triangoli

xSergio74
Il problema è un po' complesso:

Ho quattro punti in ordine casuale nello spazio 3D.
I quatto punti appartengono allo stesso piano.

Il problema consiste nel creare due triangoli qualunque che abbiano i vertici nei quattro punti, ma che non abbiano sovrapposizione di aree.

Possibile soluzione in R2 (mondo 2D):
se i punti sono tutti su uno stesso piano (XY, XZ o YZ) allora posso utilizzare questo metodo:
Creo un triangolo con i primi tre punti (A,B,C)
Prendo il quarto punto D e considero la sua posizione rispetto a ciascuno degli altri punti (per esempio A) e il segmento formato dagli altri 2 (B,C). Se A sta dalla parte opposta di D rispetto a BC, allora il A è da escludere nella formazione del secondo triangolo.

Per verificare la posizione del punto rispetto al segmento considero il segno della seguente formula:
in cui p0 è un punto e p1p2 sono gli estremi del segmento rispetto al quale devo considerare la posizione.

(p1.X - p0.X) * (p2.Y - p0.Y) - (p2.X - p0.X) * (p1.Y - p0.Y)

se il segno è positivo, il punto è “alla sinistra” del segmento, se è negativo è “alla destra”, se è 0, il punto giace sul segmento.
Per esempio, nella figura sotto C è il punto da escludere perché sta dalla parte opposta di D rispetto al segmento AB.
Avrò così i due triangolo ABC e ABD

Esiste qualcosa di analogo in R3 (mondo 3D) o un altro metodo per giungere ad una soluzione?

[img]c:\image.bmp[/img]

Risposte
eugenio.amitrano
Ciao,
indipendentemente dalla figura che volevi mostrare, CREDO che il discorso non cambi.

Basta che i due punti A e D sono opposti al segmento BD su uno solo dei tre piani (XY, XZ, YZ). (Segni opposti da formula)
Penso che questa sia una condizione sufficiente per non intrecciare i lati dei triangoli.

Se invece le figure che vuoi considerare in 3D sono piramidi a base triangolare si puo' estendere la formula considerando p0 come punto vertice e p1p2p3 come base triangolare per sapere se tale punto si trova da un lato o dall'altro della base triangolare.
Su due piedi non riesco a buttar giu' una formula.
Se ti interessa, magari domani ci dedichero' un po di tempo.

Buona notte,
EugenioA

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.