2017-08-08 9 views
0

Il y a un nuage de points à l'intérieur d'une sphère de rayon r, et le système de coordonnées de ces points est au centre de la sphère. L'idée est de "prendre des photos" de ce nuage depuis de nombreux points de vue à la surface de la sphère. La position "caméra" dépend des angles thêta (azimuts) et phi (élévation) comme indiqué sur l'image. J'ai besoin d'au moins 10000 images ou points de vue.Projection de nuages ​​de points à 2D

Comment puis-je gérer cela?

enter image description here

je l'ai fait:

Après this link j'ai projetais les points à chaque plan que je devais aussi les visulize en 3D. Comme ceci:

enter image description here

J'ai donc les coordenates des points projetés qui appartiennent au plan de la « photo », mais toujours avec le système d'origine de Coordonnées.

Le plan est défini par:

U = {-sin(theta), cos(theta), 0} 
V = {cos(theta)*sin(phi), sin(theta)*sin(phi), cos(phi)} 
Center = {cos(theta)*cos(phi), sin(theta)*cos(phi), sin(phi)}*r 

Mais je suis bloqué passant de 3D à 2D.

+0

Je suis voter pour fermer cette question hors-sujet car il s'agit d'algèbre linéaire/transformation de système de coordonnées/[math.se] au lieu de directement sur la programmation ou le développement de logiciels. – Pang

Répondre

1

point P « s coordonnées projetées dans sa propre base de l'avion [U, V] sont donnés par

[x', y'] = [dot(P - Center, U), dot(P - Center, V)]

Pour convertir en monde coordonne tout simplement faire

world_coord = Center + U * x' + V * y'

(Laissez-moi savoir si j'ai mal compris votre question)

+0

C'est tout. Je vous remercie! –

+0

@DanielAmaya vous êtes les bienvenus; Je suppose que c'est la première formule que vous recherchiez? – meowgoesthedog

+0

Oui, première formule. Mais le second sera utile aussi :) –