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.

È stato utile?

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à.

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