Non sono sicuro se questo è il posto giusto per chiedere, ma qui va ...computazionale geometria, tetraedro firmato il volume
Versione corta: Sto cercando di calcolare l'orientamento di un triangolo un piano, formato dall'intersezione di 3 spigoli, senza calcolare esplicitamente i punti di intersezione.
Versione lunga: Ho bisogno di triangolare un PSLG su un triangolo in 3D. I vertici del PSLG sono definiti dalle intersezioni di segmenti di linea con il piano attraverso il triangolo e sono garantiti da trovarsi all'interno del triangolo. Supponendo che avessi i punti di intersezione, potrei proiettare in 2D e utilizzare un test point-line-side (o area con segno triangolare) per determinare l'orientamento di un triangolo tra 3 punti di intersezione.
Il problema è che non è possibile calcolare in modo esplicito i punti di intersezione a causa dell'errore a virgola mobile che si accumula quando trovo l'intersezione del piano di linea. Per capire se i segmenti di linea colpiscono il triangolo in primo luogo, sto usando alcuni predicati geometrici robusti disponibili liberamente, che danno il segno del volume di un tetraedro, o in modo equivalente a quale lato di un piano si trova un punto. Posso determinare se i punti finali del segmento di linea si trovano su lati opposti del piano attraverso il triangolo, quindi formare un tetraedro tra il segmento di linea e ciascun bordo del triangolo per determinare se il punto di intersezione si trova all'interno del triangolo.
Poiché non è possibile calcolare in modo esplicito i punti di intersezione, mi chiedo se esiste un modo per esprimere lo stesso calcolo dell'orientamento 2D in 3D utilizzando solo i punti originali. Se ci sono 3 bordi che colpiscono il triangolo che mi dà 9 punti in totale con cui giocare. Supponendo che ciò che sto chiedendo sia anche possibile (usando solo i test di orientamento 3D), allora suppongo che avrò bisogno di formare un sottoinsieme di tutti i possibili tetraedri tra quei 9 punti. Sto avendo difficoltà anche a visualizzare questo, per non parlare di distillarlo in una formula o un codice. Non riesco nemmeno a google perché non so quale possa essere la terminologia standard del settore per questo tipo di problema.
Qualche idea su come procedere? Grazie. Forse dovrei chiedere anche a MathOverflow ...
EDIT: Dopo aver letto alcuni dei commenti, una cosa che mi viene in mente ... Forse se potessi montare tetraedri non sovrapposti tra i 3 segmenti di linea, quindi l'orientamento di qualcuno di quelli che hanno attraversato l'aereo sarebbe la risposta che sto cercando. Oltre a quando i bordi racchiudono un semplice prisma triangolare, non sono sicuro che anche questo sottotema sia risolvibile.
MODIFICA: L'immagine richiesta.
Consiglierei MathOverflow per questo. Non sto dicendo che non ci sia nessuno qui che potrebbe risolverlo, solo che probabilmente otterresti una risposta più veloce lì (e non rischieresti di chiudere la tua domanda come non legata alla programmazione). – bta
I segmenti di linea sono ortogonali al triangolo? –
Non lo vedo. Forse un diagramma aiuterebbe. –