Spezifisches gleichseitiges Dreieck mit zwei Punkten in 3D

Nehmen wir an, ich habe zwei Punkte: A = ( X 0 , j 0 , z 0 ) Und B = ( X 1 , j 1 , z 1 ) .

Wie finde ich einen dritten Punkt C = ( X 2 , j 2 , z 2 ) so dass:
a) A , B & C bilden ein gleichseitiges Dreieck
b) den Wert von z 2 ist das Höchste, was es sein kann

Vielen Dank für deine Zeit :)

Ich habe einige Beispiele mit voreingestellten Punkten ausprobiert, um nichtlineare Gleichungssysteme zu bilden A C , B C , D C ( D der Mittelpunkt von sein A B ) und dann einige partielle Ableitungen dieser Ergebnisse durchführen. Ich habe bekommen, wonach ich für ein bestimmtes Beispiel gesucht habe (wo z 0 = z 1 = 0 ), aber ich mache es irgendwie kopflos, bis ich bekomme, was ich will, und das hat für mich bei komplizierteren Beispielen (wie when z 0 z 1 ).

Willkommen bei MSE. Verwenden Sie die MathJax-Formatierung für mathematische Ausdrücke. Siehe math.meta.stackexchange.com/questions/5020/…
danke ich habe es behoben
Was C erwartest du wann zu bekommen z 0 z 1 Aber X 0 = X 1 Und j 0 = j 1 ? In diesem Fall z 2 = 1 2 ( z 0 + z 1 ) , aber was ist mit X 2 Und j 2 ?
haha ja echt gute frage. In meinem Szenario wird dies eigentlich nie passieren, zwei Punkte werden niemals gleich sein X Und j
aber ja, auch wenn es nicht passieren wird, wenn es einfacher ist, es einzufügen, könnten wir einfach sagen, dass es richtig ist X 2 / j 2 Kombination würde reichen
Sie haben zwei Kugeln, die sich schneiden - basierend auf dem Abstand zwischen A und B. Dann könnten Sie Ableitungen verwenden, um die Gleichung für das z-Maximum zu lösen.

Antworten (1)

Hinweis.

Geben Sie hier die Bildbeschreibung ein

Sonderfälle beiseite, lassen Sie A z > B z . Betrachten Sie den Punkt D = ( X 1 , j 1 , z 0 ) . A D B definiert die Ebene, in der sich der gesuchte Punkt befindet C befinden würde. Kreuzprodukt von verwenden A B Und D B rotieren A von 60 um B .


Bearbeiten

Zum Beispiel in Bezug auf eine leistungsfähige beschreibende Vektorgrafiksprache wäre Asymptote genau das Richtige

triple C=rotate(60,B,B+cross(A-B,D-B))*A;
Vielen Dank! :)
Würden Sie mir etwas mehr Informationen darüber geben, wie ich den letzten Satz in die Tat umsetzen kann? Vielen Dank
@MXu: siehe aktualisierte Antwort.
Tut mir leid, dass ich es weiter ausführen muss, aber ich bin mit dieser Programmiersprache ziemlich nicht vertraut :( Würde es Ihnen etwas ausmachen, dies in Python-Code oder nur eine Formel umzuwandeln? Nochmals vielen Dank für all die Hilfe :)
Unter Verwendung der Rotationsformel von Rodrigues ( en.wikipedia.org/wiki/Rodrigues%27_rotation_formula ) wäre k der Einheitskreuzvektor (AB, DB), v der AB-Vektor und θ = 60 Grad?
@MXu: Das ist in diesem Fall genau richtig k ist die Einheit A B × D B Vektor, v ist der A B Vektor und θ = 60 .
Nun, vielen Dank für alles, dafür, dass Sie mir und ich vermute vielen anderen bei unseren Problemen geholfen haben. Mein Studienfach ist derzeit nicht sehr beliebt, aber Sie haben mich dazu inspiriert, dasselbe zu versuchen. Habt einen schönen Tag/Nacht!
@MXu: Danke. Nur für den Fall: Die Rotationsformel von Rodrigues gibt den gedrehten Vektor an v R Ö T . Die Position des Punktes C = B + v R Ö T . Und wenn Sie sich in 3D/Mathematik vertiefen wollen, sollten Sie es versuchen Asymptote, zusammen mit TeXLive(falls Sie es noch nicht haben).