2016-03-09 5 views
0

J'ai un ensemble de points de données en 3D (X, Y, Z) dans un plan donné (3D). et j'espère adapter une epllipse à ces points.matlab adapter une ellipse à partir de datapoints 3D

J'ai trouvé beaucoup de réponses sur la façon d'ajuster l'ellipse en 2D. Donc, plus précisément, ma question est de savoir comment transformer les données 3D (x, y, z) points -> données 2D (x, y)?

+0

Ajuster un plan à ces points. Ensuite, vous avez des coordonnées dans un avion. –

Répondre

0

Dans les projections standard, l'ellipse (et le cercle est l'ellipse avec a = b = r) sera projetée en ellipse ou en ligne. Je vais donc utiliser ce comportement pour que l'ellipse 3D que vous voulez soit définie par une ellipse différente que vous pouvez calculer.

Je ne vais pas montrer le code, mais l'approche peut être:

  1. Faire les données soient définies dans M x 3 matrice, où M est le nombre de points, sous forme de [x,y,z]
  2. Définir la plan en forme de z=f(x,y)
  3. rechercher la matrice de données de lignes égal ou simillar à [x,y,f(x,y)] vecteurs
  4. Supposons que le point résultant sont ellipse forme interligne. Ensuite, utilisez la réponse comment ajuster ellipse à [x,y] paires dans la matrice résultant de la recherche (en ignorant la partie z peut être comprise comme projection sur le plan x-y).
  5. transformer les données ajustées à N x 2 matrice sous forme de [x_fit,y_fit]
  6. Développez la dernière matrice en forme de [x_fit,y_fit,f(x_fit,y_fit)]
  7. Voila - ici, nous avons équipé elipsis.
+0

Peut-être qu'il y a plus sur le problème: http://stackoverflow.com/questions/29051168/data-fitting-an-ellipse-in-3d-space?rq=1 – Crowley