Domanda

Ho una raccolta arbitraria di punti 3D, so che sono complanari, ma come faccio a calcolare quell'aereo?

È stato utile?

Soluzione

Dai tre punti distinti, e formano un triangolo di zona non-zero. Calcolano le href="http://en.wikipedia.org/wiki/Cross_product" trasversale prodotto di due dei lati del triangolo. Che ti dà del piano normale, ed è possibile utilizzare il punto comune come un punto sul piano.

Un punto su un piano più un definisce un piano .

Altri suggerimenti

Se non sono tutti planare, calcolare i coefficienti del piano utilizzando il metodo dei minimi quadrati.

L'equazione per un aereo è Ax + By + Cz = D, quindi collegare i punti e risolvere per i quattro coefficienti incogniti.

UPDATE: Solo curioso - come si fa a "conoscere" che tutti i punti siano sullo stesso piano? Cosa ti rende così sicuro?

Supponendo che sono co-planari, raccogliere tre punti, e provare questo:

http://www.jtaylor1142001.net/calcjat/Solutions/VPlanes /VP3Pts.htm

A causa eventuali tre punti non collineari definiscono un aereo, un risposta possibile è ...

Basta prendere i primi tre punti che non sono collineari.

Un altro modo per definire un piano è una funzione di due parametri ad un punto. Se si dispone di tre punti A, B, C, allora la funzione f(i,j) = A + (B-A)i + (C-A)j copre tutti i punti sul piano.

A seconda dell'applicazione può essere utile per normalizzare i vettori b = (B-A) e c = (C-A) ad essere perpendicolare e di unità di lunghezza. unità di lunghezza è facile.

Per renderle perpendicolari, prima normalizzare b, poi prendere il prodotto scalare di b e c. Questa è la quantità dei punti c vettore nella stessa direzione b, quindi sottrarre questo da c. Infine c = c - (b.c)b normalizzare c (cioè dividere per la sua lunghezza)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top