So finden Sie die Koordinaten der 2d-gleichseitiges Dreieck in C?
Habe ich die Koordinaten (x,y) von 2 Punkten. Ich will bauen, der Dritte Punkt, so dass diese 3 Punkte machen ein gleichseitiges Dreieck.
Wie kann ich berechnen, der Dritte Punkt?
Danke
FYI: Es gibt zwei solche Punkte.
Können Sie es mit der Mathematik?
den oberen Punkt ..
Wenn die beiden Punkte die gleiche x-Koordinate, es gibt keine "oberen Punkt".
Erste, dies zu tun, ohne trigonometrische Funktionen bekommt mein upvote 🙂
Können Sie es mit der Mathematik?
den oberen Punkt ..
Wenn die beiden Punkte die gleiche x-Koordinate, es gibt keine "oberen Punkt".
Erste, dies zu tun, ohne trigonometrische Funktionen bekommt mein upvote 🙂
InformationsquelleAutor Horatiu Jeflea | 2010-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach dem Lesen der Beiträge (speziell vkit) produzierte ich dieses einfache Stück code, das wird der trick für eine Richtung (denken Sie daran, dass es zwei Punkte). Die änderung für den anderen Fall sollte trivial sein.
InformationsquelleAutor Escualo
Könnte man drehen, das zweite Punkt-von 60° um den ersten zu finden, die Lage des Dritten Punktes.
Etwas wie dieses:
Ich denke, dass diese Zeichen richtig sind. Siehe auch: stackoverflow.com/questions/786472/rotate-a-point-by-an-angle
Nur ausprobiert, wenn Sie die Zeichen, wie Sie vorschlagen, es dreht sich der Punkt der andere Weg (im Uhrzeigersinn/entgegen dem Uhrzeigersinn), so dass je nachdem, wie das Koordinatensystem aufgebaut ist, der eine oder andere vielleicht mehr Sinn machen.
InformationsquelleAutor vkit
Nennen wir Ihr zwei Punkte A und B. Halbieren AB, nennen diesen Punkt C. Finden Sie die Steigung von AB (YA-YB /XA-XB), nennen es m. Finden der senkrecht zu, dass (-1/m) und nennen es m2. Dann berechnen Sie ein segment CD, deren Länge sin(60) * Länge(AB), bei der die Steigung m2 (hier gibt es zwei Punkte, eine auf jeder Seite AB). ABD dann Ihre gleichseitiges Dreieck.
Dass, natürlich, ist eine "Konstruktive" Methode. Sie sollten auch in der Lage sein, es zu tun, die durch lösen eines Satzes von linearen Gleichungen. Ich habe nicht versucht, um herauszufinden, die richtige system von Gleichungen für diesen Fall, aber dieser Ansatz ist tendenziell etwas numerisch stabiler und hat weniger speziellen Fällen (z.B., mit der konstruktiven version, eine Steigung von 0 hat, die behandelt werden mit speziell).
Korrigiert.
InformationsquelleAutor Jerry Coffin
Für BlueRaja die Herausforderung, gehen Sie zum Ende der post:
Antwort mithilfe von translation und rotation:
Sagt Punkte sind P(x1,y1) und Q(x2,y2).
Da es Grafiken, die Sie verwenden können, wandelt auf den Punkt zu kommen.
Ersten übersetzen-Achsen, so P ist der Ursprung.
Als Nächstes drehen Sie Q um P von 60 Grad (oder -60 um die anderen möglichen Punkt).
Dies gibt Ihnen die Koordinaten für den Dritten Punkt sagen, dass R, wenn P den Ursprung.
Übersetzen zurück und dort haben Sie es.
Können Sie standard-Grafik-API, die kümmern sich um Präzision etc Probleme für Sie. Keine Kopfschmerzen.
Natürlich könnte man die Mathematik zu tun, und wirklich kommen mit einer Formel, und verwenden, und das könnte schneller sein, aber dann ist die Frage, könnte geschlossen werden, off-topic 😉
Zu nehmen BlueRaja Herausforderung: Hier ist eine Methode, welche nicht mit der Trigonometrie.
Punkte gegeben P(x1,y1) und Q(x2,y2)
Sagen Sie den Punkt brauchen wir uns (R) zu finden ist (x3,y3).
Lassen Sie T sein Mittelpunkt von PQ.
Kennen wir die Fläche des Dreiecks PQR (da es sich um ein gleichseitiges Dreieck, und wir kennen die Seite)
und wir kennen die Fläche des Dreiecks PRT (1/2 der früheren Bereich).
Nun die Fläche eines Dreiecks kann geschrieben werden als eine Determinante mit den Koordinaten, die als Einträge:
Wir haben zwei solche Gleichungen (lineare), lösen für x3 und y3.
Ja, das funktioniert auch, wie der Suche nach den normalen Bedarf es nicht um die Trigonometrie. Ich wollte komplett vermeiden Sie die Verwendung jeder Art von Winkel Konzepte, damit die Komplexität...
Wenn Sie
(x1, y1)
und(x2, y2)
, die normale ist nur(-(y2-y1), (x2-x1))/length
. Die Bestimmung der Länge ist einfach, aber nicht einmal eine Rolle, in diesem Fall, wie es bricht die Letzte Gleichung.Ja, ich bin nicht bestreiten, dass. Alles was ich sage ist, dass ich begann zu denken, "Ohne Winkel... Keine Ecken,.." und verwaltet, um die Sache zu verkomplizieren 🙂
InformationsquelleAutor
InformationsquelleAutor Sunaj