2009-07-22 5 views
6

Ho il seguente problema geometrico in 2D:geometria 2D: come verificare se un punto è all'interno di un angolo

ho un punto da cui i gettato un angolo infinito (2D-cono) che è dato da una direzione e un angolo. (il punto e la direzione formano un vettore e su ogni lato metà dell'angolo forma il cono 2D)

ora voglio controllare se un altro punto in 2D è all'interno di questo cono o all'esterno.

come si può ottenere? grazie!

+1

in quale lingua? – erenon

+0

Non è un cono 3d? –

+1

La lingua non dovrebbe avere importanza; Credo che sia l'algoritmo che l'OP sta cercando. –

risposta

9

Calcolare il vettore dal centro del cono al punto di interrogazione. Normalizza il vettore per essere di lunghezza 1, Prendi il vettore centrale del cono e normalizza anche questo per la lunghezza di 1.
Ora prendi il prodotto punto tra i vettori. Il prodotto punto tra due vettori normalizzati è il coseno dell'angolo tra di loro. Prendi l'arccos (acos nella maggior parte delle lingue) del prodotto dot e otterrai l'angolazione. confrontare questo angolo con l'angolo del cono (mezzo angolo nella descrizione). se è inferiore, allora il punto in questione è all'interno del cono.

Questo funziona in 2D e 3D.

+0

grazie, in realtà è quello che ho fatto tutto il tempo, ma non pensavo che fosse finito, perché non avevo capito dove viene presa in considerazione la posizione attuale del punto. ora ha senso. Grazie! – clamp

1

Calcolare l'angolo della direzione utilizzando l'arco della direzione. Sottrai l'origine dal punto selezionato. Calcola il suo angolo (sempre tramite arctg di un vettore normalizzato) e controlla se si trova entro i limiti dell'angolo.

1

Direi che il modo migliore è proiettare il punto sulla superficie 2D perpendicolare alla direzione dei coni. Quindi calcoli la distanza otogonale tra lo stesso piano e il punto. Infine, conosci la larghezza del cono a quell'altezza, così puoi vedere se il punto si trova al di fuori di tale larghezza.

1

Lascia che il vettore dal punto di origine al punto specificato formi un angolo A con il normale che attraversa il centro. Se l'angolo A è inferiore al mezzo angolo del cono, esso si trova all'interno dell'altro esterno.