Segmenti di linea da un punto
Domanda
ho un punto p, e 2 segmenti di linea in un piano 2D. Point p è un luogo di vista da cui fotocamera sta guardando verso i segmenti di linea. Voglio verificare se segmento di linea 1 è parzialmente o completamente nascosto dietro la linea 2, quando si guarda dal punto P.
Soluzione
Credo che la questione è se la seconda linea è "mascherato" dalla prima linea.
Let dire ti punto fotocamera è C, ed i segmenti sono: A1, A2 e B1, B2.
Vorrei calcolare la prodotti trasversali CA1xCB1 e CA2xCB2. Il segno vi dà se il punto se il punto B1 è a sinistra oa destra della linea CA1. Dipende da come la vostra CA1A2 triangoli e CB1B2 sono orientati (devono essere orientati gli stessi, sono molti modi per farlo).
È possibile quindi utilizzare il segno per sapere se si è nei seguenti casi:
- CA1xCB1 è negativo o CA2xCB2 è positivo, poi parzialmente visibile
- l'opposto, allora nascosto.
È inoltre possibile calcolare CA1xCB2 e CA2xCB1 di aver multato casi grana.
Altri suggerimenti
La risposta di slurdge è un buon inizio, ma è un po 'più complicato di così.
Se segmento di linea 2 è più vicino a C rispetto segmento di linea 1, potrebbe essere ancora visibile, per esempio.
A1-------A2
B1-B2
C
Qui B1 e B2 sono "dentro" il settore A1A2, ma non sono nascosti.
Il più difficile da lavorare fuori è se B1 è 'tra il' A1 e A2, ma più vicino alla telecamera, mentre B2 è 'non tra' A1 e A2, ma più lontano dalla macchina fotografica:
B2
A1-----A2
B1
C
B1B2 potrebbe ritagliare il bordo del segmento di linea, rendendo così una piccola porzione di B1B2 nascosta (o forse no!). Penso che si dovrebbe trovare l'intersezione di A1A2 e B1B2 per verificare se questo accade in realtà.