![]() |
---|
Hallo Leute, Ich möchte die Normalenvektoren von Punkten ermitteln die im Raum liegen. Ich habe eine 20x3 Matrix, da sind die X,Y und Z Koordinaten von den Punkten enthalten. Ich weiß zwar wie ich von einem 3x3 Matrix den Normalenvektor ermittele aber bei einem 20x3 matrix habe ich keinen plan. Bedanke mich jetzt schon für euere Hilfe. Gruß Hier eine Beispiel Matrix: Punkte = (96.993 , 42.615 , 12.749; 97.320 , 44.299 , 13.899; 97.451 , 43.588 , 13.487; 96.497 , 43.323 , 13.098; 96.704 , 42.596 , 12.605; 96.859 , 42.915 , 12.838; ...........) Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
Hierzu passend bei OnlineMathe: Online-Übungen (Übungsaufgaben) bei unterricht.de: |
![]() |
![]() |
durch drei Punkte im Raum kann man eindeutig eine Ebene legen und für eine Ebene kann man einen Normalenvektor aufstellen. Bei 20 Punkten ist das ganze überbestimmt. Entweder liegen alle Punkte in der selben Ebene - das ist hier nicht der Fall - oder Du kannst per Regression eine (am besten passende) Ebene bestimmen und von dieser wiederum den Normalenvektor. Ist es das, was Du vorhast? Wie kommst Du zu dieser 20x3-Matrix? Gruß Werner |
![]() |
Hallo Salomon, Können wir mal schrittweise vorgehen, nehmen wir mal an das alle Punkte die ich habe auf einer ebene liegen, wie bestimme ich den normalenvektor von jedem einzelnen Punkt ? Woher kann ich herausfinden ob all die Punkte auf der ebene liegen? Also bei dem oben genannten fall würde ich durch drei Punkte eine Ebenengleichung(mit kreuzprodukt) ermitteln und danach die punkte einzeln dort einsetzen wenn diese gleich Null beziehungsweise auf beiden Seiten gleich ist heißt es ja das die auf der ebene liegen. Wie ich da weiter machen würde weiß ich nicht. Gruß |
![]() |
Können wir mal schrittweise vorgehen, nehmen wir mal an das alle Punkte die ich habe auf einer ebene liegen, wie bestimme ich den normalenvektor von jedem einzelnen Punkt ? Wenn alle Punkte komplanar liegen, dann kannst du doch für jeden Punkt denselben Normalvektor verwenden. Also such dir drei hübsche Punkte aus, die nicht kollineare Lage haben, bilde damit zwei Ebenenvektoren und berechne damit einen Normalvektor der Ebene. Zwei Dinge irritieren: Du schreibst von "dem" Normalvektor. Wenn ein Vektor auf irgendwas normal steht, dann steht auch jedes Vielfache (vom nullfachen mal abgesehen) dieses Vektors ebenfalls normal drauf. Du kannst also bestenfalls einen (von vielen) Normalvektor angeben, aber nicht "den". Wenn du normal sagst und einen Punkt angibst, dann musst du unbedingt auch erklären, worauf denn der gesuchte Vektor normal stehen soll. Das fehlt bei dir völlig. Da deine Punkte offenbar nicht alle in einer Ebene liegen (dein Ansatz, wie das zu prüfen ist, ist OK), ist diese Frage also völlig offen. Mach dir klar, dass ein Haufen von Punkten noch lange keine Fläche festlegen. Da fehlt zum einen die Information, wer wessen Nachbar ist, also wie das Mesh aus diesen Punkten aufgebaut sein soll und zum anderen wäre selbst mit dieser Information keine Fläche definiert. Man könnte bestenfalls entweder eine Interpolationsfläche durch die Punkte legen (da gibts viele Möglichkeiten und entsprechend unterschiedliche Normalvektoren) oder eine Regressionsfläche (die . keinen einzigen der Punkte enthält, aber in Summe gut "passt") ermitteln. Vielleicht hilft es der Vorstellung, wenn du dir die gleiche Situation eine Dimension tiefer vorstellst. Du hast in der xy-Ebene eine Menge von Punkten eingezeichnet und damit ist keinesfalls eindeutig festgelegt, in welcher Reihenfolge du sie mit einem Streckenzug verbinden sollst. Es ist ja keinesfalls gesagt, dass es sich um eine Funktion über handeln muss und die Punkte nach aufsteigendem x-Wert verbunden werden sollen. außerdem könnten ja einige Punkte dem gleichen x-Wert haben, was dann? Und selbst, wenn die Reihenfolge geklärt wäre gibst unendlich viele mögliche Abbildungen, deren Graphen die gegebenen Punkte enthalten. Welche davon sollen wir nehmen. Oder wollen wir eine Näherungskurve heran ziehen, die möglichst gut passt. ABer welche darfs denn sein? Eine Gerade, oder doch etwas Nichtlineares. Du siehst, dass du erst deine Aufgabenstellung präzisieren musst. Also worum gehts denn nun wirklich konkret in deiner Aufgabe? Auch Werner hatte dir vorhin Fragen gestellt, "Ist es das, was Du vorhast?" "Wie kommst Du zu dieser 20x3-Matrix?" doch leider hast du diese einfach ignoriert. Ich fürchte, so wirds nix werden. |
![]() |
Hallo Aydin, Du fragst: ".. wie bestimme ich den Normalenvektor von jedem einzelnen Punkt ?" Antwort: gar nicht. (eindeutige) Normalenvektoren im Raum kannst Du nur von Flächen - in Deinem Fall von einer Ebene bestimmen. Du brauchst drei Punkte, um eine Ebene zu bestimmen und dann hast den Normalenvektor. "Woher kann ich herausfinden ob all die Punkte auf der ebene liegen?" .. das hast Du Dir schon selbst beantwortet. Ja das wäre eine Möglichkeit. "Wie ich da weiter machen würde weiß ich nicht." kommt drauf an, wo Du hin willst. Sollen alle Punkte in einer Ebene liegen? Was ist die Intention des Gesamtproblems? Gruß Werner |
![]() |
.. ich habe noch mal nachgerechnet. Die Punkte liegen schon in etwa in einer Ebene. Vielleicht hilft Dir das weiter: http//www.mordwinzew.de/ausgleichung/ghm/ebene Gruß Werner |
![]() |
Die Punkte liegen schon in etwa in einer Ebene. Stimmt. Die Abweichungen von der Regressionsebene sind (zumindest für die 6 Punkte die uns bekannt sind) eher minimal. |
![]() |
Ok Leute, dann gehen wir mal bitte schritt für schritt voran. Ich habe eine 22500x3 Matrix gegeben und von jeden dieser Punkte möchte ich zunächst einmal den Normalenvektor ermitteln.Die punkte liegen in einem dreidimensionalen Koordinatensystem.Die Punkte liegen benachbart aneinander und liegend nicht irgendwo im Raum. Da ich keine plan habe wie ich vorgehen muss, würde ich es gerne mit euch anhand eines kleinen Beispiels machen. hier habe ich eine neue Beispielsmatrix: X-Werte=( -6,37896642368594 -7,01573577314627 -7,58864481188766 -8,11485310109319 -8,60332811430640 -9,05814523159573 -9,47938801193622 -9,86224361248746 -6,37896642368594 -7,01573577314627 -7,58864481188766 -8,11485310109319 -8,60332811430640 -9,05814523159573 -9,47938801193622 -9,86224361248746) Y-Wert=( 88,0134966454718 87,5360769314969 87,3009633079484 86,8445896227406 86,8645980817744 86,4194970644335 86,6785761148159 86,2372261198693 86,7315614177064 86,2873559160166 87,0239306628078 86,5702129072762 87,5678668634130 87,0969466132361 88,3904435497902 87,8921803062864) Das sind die erste 16 Werte von meinem Matrix. Wie würde ich jetzt hier voran gehen, ich ermittle anhand von 3 Punkten die Ebenengleichung. Was sollte ich als nächstes machen, irgendwie komme ich nicht weiter und das was ihr oben schreibt verstehe ich auch nicht so ganz. |
![]() |
Hallo einen Normalenvektor zu einem Punkt gibt es nicht. du kannst den Normalenvektor von 3 Punkten ermitteln als den Normalenvektor auf dem Dreieck, das durch die 3 Punkte gegeben ist. Dazu musst du aber wissen, wie die Punkte zueinander liegen. benachbart zueinander ist zu wenig. denn sie könnten alle auf einer Raumkurve liegen, oder ein Polyeder bilden oder... woher kommen die Punkte? Wenn man etwa auf einer Fäche Zufallspunkte erzeugt, und die Nachbarn zu jedem Punkt kennt, kann man bei ein gewichtetes Mittel der Kreuzprodukte von wobei die benachbarten Punkte durchläuft. sind die Winkel zu klein klappt das schlecht , die Gewichte werden nach Abstand bestimmt, je größer der Abstand, desto kleiner das Gewicht. ausprobieren kannst du das etwa, indem due dir Punkte auf einer Sphäre nimmst , wo du die Normalen kennst. wenn alle Punkte in einer ebene liegen sind ja alle Normalenvektoren gleich , aber wenn von deinen in einer ebene liegen können sie alle verschiedene Normalenvektoren haben, wenn die Punkte etwa auf einer ebene liegen, die dein Gebilde (Beispiel Kugel) schneidet. deshalb die wichtigste Frage: woher hast du die Punkte? es sieht aus, als hättest du ein Objekt gescannt? lägen sie . auffrieren Raumkurve gäbe es keinen sinnvollen Normalenvektor, Liegen sie auf einer konvexen Fläche, dann bestimme zu einem Punkt die 2 nächsten, daraus Kreuzprodukt Faktor dann die 4 weiteren , wieder Kreuzprodukt Faktor jetzt alle 3 mitteln. Dieses Verfahren, kann man wenn man mehr über die Fläche weiss verfeinern. Gruß ledum |