Ebene im Raum in 2D transformieren



  • Hallo,

    mit welchen Verfahren kann man eine Ebene im Raum in den zwei-dimensionalen Raum transformieren? Oder macht das eine einzige Matrix? Möchte die zwei-dimensionalen Koordinaten bearbeiten und anschliessend wieder zurück transormieren.
    Danke!



  • Du willst also Punkte in einer Ebene bearbeiten?

    Am effizientesten ist die Verwendung von Quaternions.
    Matrizen gänge auch, ist aber langsamer.

    \edit:
    Mal was anderes: Was willst du denn in der Ebene machen, was du angeblich nur
    mit 2D-Koordinaten schaffst.



  • Ich kann analytische Geometrie betreiben oder zum Beispiel die konvexe Hülle bilden in der Ebene und anschliessend, brauch ich die Punkte einfach nur zurück transformieren. Ich habe aber die Punkte die in einer Ebene liegen. Also mein spezielles Problem ist gerade, das ich drei Punkte habe im Raum. Ich möchte den Mittelpunkt des umschliessenden Kreises berechnen. lol
    Häng gerad, ist bestimmt trivial. Nun möchte ich den Schnittpunkt der Mittelsenkrechten berechnen, denn das ist ja gerade der Mittelpunkt. Nur wie berechne ich mir die Richtungsvektoren beider Mittelsenkrechten. Diese Richtungsvektoren stehen ja senkrecht auf einem Vektor. Habe die Richtung von A->B und von A->C.
    Analytisch würd ich in 2D mir die Steigung berechnen und dann -(1/m) rechnen. Mit der Punkt-Steigungs-Form wär ich dann schnell fertig.



  • Ich höre hier seit Tagen nur was von Kreisen und Umkreisen 😉

    Na gut. Den Richtungsvektor der Mittelsenkrechten bekommst du durch 2 mal
    Kreuzprodukt:

    A, B, C - Punkte des Dreiecks

    AB x AC steht senkrecht auf der Ebene des Dreiecks

    (AB x AC) x AB steht senkrecht zu AB und liegt in der Ebene des Dreiecks UND
    zeigt ins Dreieck hinein

    \wieder edit:
    Da fällt mir gerade ein, wenn du den Schnittpunkt im Raum berechnen willst, ist
    vleicht die Variante mit der Rotation besser.
    Ich gehe mal davon aus, dass du das von einem Rechner rechnen lassen willst.
    Da wirst du in den wenigsten Fällen einen Schnittpunkt bekommen, sondern
    müsstest die Punkte bestimmen die den kleinsten Abstand zu einander haben. Das
    ist um einiges aufwändiger.

    \2tes mal edit (nun ist aber mal gut):
    Na gut, du könntest einmal eine Mittelsenkrechte zu AB und eine Ebene mit dem
    Normalenvektor AC schneiden lassen. Das ist dann auch numerisch stabil.



  • @Mister Wing: Wie man die Richtungsvektoren dafuer berechnet, habe ich dir doch in deinem andern Beitrag schon erklaert! Und da meintest du, due wuesstest das alles.

    (achja falls du das doch auf dem Weg machen willst, ein Programm zum Berechnen des Schnittpunktes zweier Geraden im Raum hab ich auch mal geschrieben... 😉 )



  • Wie gesagt, Schnittpunkt zweier Gerade ist nicht stabil.

    Eine Ebene und eine Mittelsenkrechte schneiden zu lassen, ist die beste und schnellste Lösung.



  • @Poerpaule Sorry, wusste ich noch im Kopf das ich die Mittelsenkrechten berechne und dann schneiden lasse. War mir auch klar, nur die Rechenoperation dafür nicht mehr. Also zweimal Kreuzprodukt. 🙂 🙂 🙂 Jetzt hab ichs ja.
    Wie bist du beim implemntieren vorgegangen? hast du die numerisch stabile version genommen mit der rotation oder den weg den ich gerad bestreite? einfach den schnittpunkt über die beiden geradengleichungen lösen?

    @chuck wie geht man bei der rotation vorbei? ich habe alle punkte die in einer eben liegen. kann ich die alle in einer matrix packen und mit der rotationsmatrix rotieren? ich könnte doch auch jeden punkt durch seine eigene z-koordinate teilen und anschliessend wieder mal die z-koordinate nehmen. nicht elegant, aber auch eine lösung oder?



  • Ähm naja, was machst du, wenn z = 0 ist. Und wie transformierst du den
    Mittelpunkt zurück in Raum.
    Das ist keine Lösung, die für dich relevant wäre.

    Wenn du nur den Schnittpunkt der Mittelsenkrechten brauchst mach folgendes:

    A, B, C - Punkte des Dreiecks

    Gerade g durch (OA + AB/2) mit ((AB x AC) x AB) als Richtungsvektor
    Ebene E durch (OA + AC/2) mit (AC) als Normalenvektor

    Jetzt lässt du g und E schneiden und erhälst immer einen Schnittpunkt, auch
    ohne Rotation.

    Hast du Fragen zu dieser Variante? Ist stabil und auf JEDEN Fall schneller als
    die anderen beiden Varianten.


Anmelden zum Antworten