Question

J'ai de nombreux avions 3D. La chose que j'ai besoin de savoir est la façon de calculer l'angle d'aspect. J'espère que je peux calculer l'angle d'aspect en utilisant le vecteur normal projeté de chaque plan (mon équation plan est ax + by-z + c = 0; donc le vecteur normal de ce plan est a, b, -1) au xy avion. Ensuite, à partir de l'axe Y, je peux calculer l'angle d'aspect. Mais, je ne sais pas comment obtenir le vecteur normal projeté après avoir projeté sur XY Plane. Ensuite, puis-je appliquer l'équation qui donne un angle entre deux vecteurs pour calculer l'angle du vecteur souhaité de l'axe Y.

D'un autre côté, j'ai trouvé que l'angle d'aspect est défini comme l'angle entre n'importe quelle ligne qui passe le long de la pente la plus raide du plan et de la direction nord (ici, axe y). Cette définition suivra-t-elle, avec ma manière proposée qui prend des vecteurs normaux? Je veux dire, le vecteur normal projeté est-il toujours donné le long de la pente la plus raide de l'avion? De plus, quelqu'un m'a dit que ce problème devrait considérer comme un problème 2D. Veuillez me commenter et m'envoyer les formules pertinentes afin de calculer l'angle d'aspect. Merci.

Était-ce utile?

La solution

Un Google rapide révèle la définition de l'angle d'aspect.

http://www.answers.com/topic/aspect-ang

C'est l'angle entre le nord géographique sur l'hémisphère nord et le sud géographique sur l'hémisphère sud. Donc, fondamentalement, c'est une mesure à quel point une pente fait face au pôle le plus proche.

Si votre monde est planaire par opposition à la sphérique, cela simplifiera les choses, alors oui - un problème 2D. Je vais faire cette hypothèse ayant les implications suivantes:

  • Dans un monde sphérique, le pôle Nord est un point sur la sphère. Dans un monde planaire, le "poteau" est un avion à Infinity. Pensez à un avion quelque part loin dans votre monde dénotant "North". Seule la normale de ce plan est importante dans cette tâche. L'unité normale de ce plan est N(NZ, NY, NZ).
  • Up est un vecteur pointant vers le haut U(UX, uy, yz). Il s'agit du vecteur normal de l'unité du plan de sol.

Le vecteur normal de l'unité du plan V(a, b, c) peut maintenant être projeté sur un vecteur P sur le plan au sol comme d'habitude: P = V - (V point U) U

Maintenant, il est facile de mesurer l'angle d'aspect du plan - c'est l'angle entre le plan "Pole" N et l'avion projeté normal P donné par acos(P point N).

Puisque North est un axe y positif pour vous, nous avons N = (0, 1, 0). Et puis je suppose que tu as up est U = (0, 0, 1), Z. positif. L'angle d'aspect est alors l'angle entre (a, b) et (0,1).

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

Notez que les plans se parallèles au plan de sol n'ont pas d'angle d'aspect bien défini car il n'y a pas de pente pour mesurer l'angle d'aspect.

Autres conseils

Avec quel genre de surfaces travaillez-vous? Des boîtes (réseaux irréguliers triangulaires) ou Dems (modèles d'élévation numérique)?

Si vous utilisez des images raster pour créer vos surfaces, l'algorithme pour calculer l'aspect est essentiellement une fenêtre mobile, qui vérifie un pixel central plus les 8 voisins.

Comparez celui central avec chaque voisin et vérifiez la différence d'élévation sur la distance (augmentation sur la course). Vous pouvez paramétriser les contrôles de distance (les voisins nord, sud, est et ouest sont à distance = 1 et nord-ouest, sud-ouest, sud-est et nord-est sont à distance = sqrt (2)) pour le rendre plus rapide.

Vous pouvez également poser cette question sur gis.stackexchange. Beaucoup de gens pourront vous aider là-bas.

Éditer:http://blog.geoprocessmento.net/2010/03/modelos-digitais-de-elevacao-e-hidrologia/

Ce site Web, Alought in Portugais, vous aidera à visualiser l'algorithme. Après avoir calculé la pente la plus élevée entre une cellule centrale et ses huit voisins, vous attribuez 0, 2, 4, 8, 16, 32, 64 ou 128, selon l'emplacement de la cellule qui présentait la pente la plus élevée entre le centre et les voisins.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top