Domanda

Ho molti aerei 3D. La cosa che devo sapere è il modo di calcolare l'angolo dell'aspetto. Spero che posso calcolare l'angolo dell'aspetto usando il vettore normale proiettato di ciascun piano (la mia equazione del piano è ax+by-z+c = 0; quindi il vettore normale di questo piano è a, b, -1) a XY aereo. Quindi, dall'asse Y posso calcolare l'angolo di aspetto. Ma non so come ottenere il vettore normale proiettato dopo aver proiettato sull'aereo XY. Quindi, posso applicare l'equazione che dà l'angolo tra due vettori per calcolare l'angolo del mio vettore desiderato dall'asse Y.

D'altra parte, ho scoperto, l'angolo di aspetto è definito come l'angolo tra qualsiasi linea che passa lungo il pendio più ripido del piano e della direzione nord (qui, asse y). Questa definizione seguirà, con il mio modo proposto che sta prendendo vettori normali? Voglio dire, il vettore normale proiettato è sempre somministrato lungo la pendenza più ripida dell'aereo? Inoltre, qualcuno mi ha detto che questo problema dovrebbe considerare come un problema 2D. Per favore commentami e inviami le formule pertinenti per calcolare l'angolo di aspetto. Grazie.

È stato utile?

Soluzione

Un po 'di googling rapido rivela la definizione dell'angolo di aspetto.

http://www.answers.com/topic/Aspect-angle

È l'angolo tra il nord geografico sull'emisfero settentrionale e il sud geografico sull'emisfero meridionale. Quindi fondamentalmente è una misura quanto un pendio sia il palo più vicino.

Se il tuo mondo è planare rispetto a sferico, semplificherà le cose, quindi sì - un problema 2D. Farò questo presupposto con le seguenti implicazioni:

  • In un mondo sferico il Polo Nord è un punto sulla sfera. In un mondo planare il "palo" è un aereo all'infinito. Pensa a un aereo da qualche parte lontano nel tuo mondo che indica "North". Solo il normale di questo piano è importante in questo compito. L'unità normale di questo piano è N(NZ, NY, NZ).
  • UP è un vettore che rivolta verso l'alto U(ux, uy, yz). Questo è il vettore normale dell'unità del piano di terra.

Il vettore normale dell'unità del piano V(A, B, C) ora può essere proiettato su un vettore P Sul piano di terra come al solito: P = V - (V punto U) U

Ora è facile misurare l'angolo di aspetto del piano: è l'angolo tra il piano "polo" N e il piano proiettato normale P dato da ACOS(P punto N).

Poiché il Nord è un asse y positivo per te che abbiamo N = (0, 1, 0). E poi immagino che tu abbia Up lo sia U =) L'angolo di aspetto è quindi l'angolo tra (a, b) e (0,1).

aspectAngle = acos(b / sqrt(a*a + b*b))

Si noti che i piani parallela con il piano di terra non hanno un angolo di aspetto ben definito poiché non vi è pendenza per misurare l'angolo di aspetto.

Altri suggerimenti

Con che tipo di superfici stai lavorando? TIN (reti irregolari triangolari) o DEMS (modelli di elevazione digitale)?

Se si utilizzano immagini raster per creare le tue superfici, l'algoritmo per il calcolo dell'aspetto è fondamentalmente una finestra mobile, che controlla un pixel centrale più gli 8 vicini.

Confronta quello centrale con ciascun vicino e controlla la differenza di elevazione a distanza (salire oltre). È possibile parametrizzare i controlli della distanza (i vicini a nord, sud, est e ovest sono a distanza = 1 e nord -ovest, sud -ovest, sud -est e nord -est sono a distanza = sqrt (2)) per renderlo più veloce.

Puoi porre questa domanda anche su GIS.StackExchange. Molte persone saranno in grado di aiutarti lì.

Modificare:http://blog.geoprocessamento.net/2010/03/modelos-digitais-de-elevacao-e-hidrologia/

Questo sito Web, altetto in portoghese, ti aiuterà a visualizzare l'algoritmo. Dopo aver calcolato la pendenza più alta tra una cella centrale e gli otto vicini, si assegna 0, 2, 4, 8, 16, 32, 64 o 128, a seconda della posizione della cella che presentava il pendio più alto tra il centro e i vicini.

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