AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein BestFit Ebenengleichung durch Punktwolke
Thema durchsuchen
Ansicht
Themen-Optionen

BestFit Ebenengleichung durch Punktwolke

Ein Thema von Andy386 · begonnen am 13. Jun 2009 · letzter Beitrag vom 14. Jun 2009
Antwort Antwort
Andy386

Registriert seit: 26. Mär 2008
55 Beiträge
 
#1

BestFit Ebenengleichung durch Punktwolke

  Alt 13. Jun 2009, 16:41
Hallo,

eigentlich ist meine derzeitige Sprache MATLAB, da hab ich nur leider kein vernünftiges Forum gefunden. Hatte letztes Jahr hier immer gute Erfahrungen gemacht...

Ich möchte den Tangentialvektor an einen Punkt (eines Körpers) im Raum finden.
Mit der Hess'schen Normalform dürfte das nicht so schwer werden: ax+by+cz=d, der Vektor ist dann (a,b,c)
Klassifiziert ist mein Körper durch p1(x1,y1,z1) bis pn(xn,yn,zn),
den Punkt, an dem ich ableiten möchte, kenne ich auch und damit die Punkte, durch die die Ebene gehen soll (also best fit mässig...).
Ich habe jetzt folgendes Problem: Wie finde ich die Best-Fit-Ebene durch eine Punktwolke ?
für n=3 gibt es Formeln, um die Ebene aufzuspannen, aber für mehr als drei habe ich nix gefunden.

a, b und c für 3 Punkte erhalte ich durch Lösung des LGS:
http://pic-hoster.net/thumb/6b3dd4fa...6561fe787e.png

Wie sähe das ganze für mehr als drei Punkte aus ?
Wird das ein Optimierungsproblem?


[edit=Matze]Hinweis zum Verschieben des Themas aus dem Beitrag und der Überschrift entfernt. MfG, Matze[/edit]
  Mit Zitat antworten Zitat
13. Jun 2009, 19:17
Dieses Thema wurde von "Matze" von "Sonstige Fragen zu Delphi" nach "Programmieren allgemein" verschoben.
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: BestFit Ebenengleichung durch Punktwolke

  Alt 13. Jun 2009, 22:14
kannst du das ein bischen präzisieren? Ich verstehe dein Problem so: Du hast eine Punktwolke, die einen Körper beschreibt und einen Punkt an deren Oberfläche (also aussen, genau wäre das ein bischen schwer zu definieren), durch den du eine Tangentialfläche zu dem Körper angeben willst.
Wenn dein Körper konvex ist, könntest du erst die konvexe Hülle berechnen und dann einfach das Dreieck auswählen, das den geringesten Abstand zu deinem Punkt hat. Wenn dein Körper allerdings nicht konvex ist, wird das ganze ein bischen schwieriger, da könntest du das gleiche Verfahren nehmen, dabei aber statt der konvexen Hülle die alpha-shape der Punktwolke einsetzen.
Dafür könntest du z.B. cgal einsetzen, eine recht unfangreiche aber freie Bibliothek zur Computergeometrie.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Andy386

Registriert seit: 26. Mär 2008
55 Beiträge
 
#4

Re: BestFit Ebenengleichung durch Punktwolke

  Alt 14. Jun 2009, 00:32
Äh, hab vergessen zu erwähnen, dass die Punkte nur auf der Hüllfläche des Körpers einen Wert haben, innen drin sind die genau so wie draussen Null.
Deswegen muss ich nicht weiter betrachten, ob die Punkte nun "im" Körper sind oder nicht<. ich ziehe einfach eine Kugel um den zu untersuchenden Punkt und erhalte dann die Punktwolke, durch die die Ebene gehen soll.

Danke für den Tipp mit cgal, ich glaube, ich hab jetzt die korrekte englische Bezeichnung gefunden: "least square plane fitting"
ich wusel mich mal durch google durch...
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#5

Re: BestFit Ebenengleichung durch Punktwolke

  Alt 14. Jun 2009, 00:38
Zitat von Andy386:
... ich glaube, ich hab jetzt die korrekte englische Bezeichnung gefunden: "least square plane fitting"
...
Hallo,

das heisst einfach: wähle die Ebene so, dass die Summe der Quadrate der Abstände aller Punkte zur Ebene minimal wird. Typische Optimierungsaufgabe.

Gruss Reinhard
  Mit Zitat antworten Zitat
Andy386

Registriert seit: 26. Mär 2008
55 Beiträge
 
#6

Re: BestFit Ebenengleichung durch Punktwolke

  Alt 14. Jun 2009, 09:53

hab sogar schon was in M-Code gefunden
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz