Zeichnen Sie ein gleichseitiges Dreieck gegeben, das Zentrum
Wie zeichne ich ein gleichseitiges Dreieck gegeben, das Zentrum als cx
und cy
und der radius des centroid Kreis ?
Und wie ich finde, wenn ein Punkt im Dreieck oder nicht ?
PS: ich Baue diese für android
, aber diese Frage ist sprachneutral.
InformationsquelleAutor Gautam | 2012-07-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihre erste Frage
Punkt C in der Abbildung oben ist einfach nur ( cx, cy + r ).
Ich denken kann zwei relativ einfache Möglichkeiten, um die Punkte a und b:
Erste Methode: Behaupten Sie, dass (cx,cy) ist der Ursprung und drehen Sie den Punkt C von 60 Grad und von 120 Grad, um zu bekommen a und b. Dies kann erreicht werden mit der Formel:
Werfen Sie auch einen Blick auf dieser Artikel auf wikipedia.
Zweite Methode: zeichnen Sie eine Linie, die durchläuft (c.x, c.y) und hat eine -30 Grad-Steigung. Wo die Linie schneidet den Kreis wird Punkt b. Der Kreis ist definiert durch die Gleichung:
(beachten Sie, es gibt zwei Schnittpunkte, so wählen Sie das richtige ein).
Dann tun Sie das gleiche mit einem positiven Winkel von 30 Grad-Linie durch c ist.x, c.y) um den Punkt a.
Deine Zeilen hätte Pisten: 1 /sqrt(3) -1 /sqrt(3)
Ihre zweite Frage
Sobald Sie die Punkte A, B und C bilden das gleichseitige Dreieck, eine der schnellsten und einfachsten Möglichkeiten, um festzustellen, ob ein Punkt (x,y) liegt im Dreieck basiert auf der cross-Produkt-und-Vektoren.
Im Grunde, finden Sie, wenn (x,y) ist auf der linken Seite der "vector"->B. Dann sehen, wenn es auf der linken Seite der B->C. prüfen Sie Dann, wenn es auf der linken von C->A.
Folgende Methode zitiert aus hier können Sie prüfen, ob ein Punkt Links von einem Vektor.
In der Methode Eine Zeile = Punkt1, b = line point2, und c = Punkt-zu überprüfen.
InformationsquelleAutor Xantix
In diesem moment, ich kann nur die Antwort auf Ihre zweite Frage. Nur ein point-line-intersection-test, vorausgesetzt, dass, die Sie gespeichert haben die Punkte, die definieren Ihr Dreieck. Sie finden relativ viele algorithmen in der computer Graphik, Bücher.
Bearbeiten: ich dachte, eine Methodik zur Lösung Ihrer grundlegenden problem (finde die 3 Punkte definieren, die dem gleichseitigen Dreieck mit cx, cy) und radius gegebenen Daten). Es beruht auf der Eigenschaft, dass die Summe der 3 Winkel in jedem Dreieck ist 180 Grad. Ich brauche einige Zeit, um eine weitere überprüfung, um sicherzustellen, dass es korrekt ist. Dann werde ich Bearbeiten meine Antwort auf den post.
Bearbeiten-Vollständige Antwort: die Umsetzung dieses Algorithmische Skizze setzt auf die Programmiersprache und die Grafik-API Ihrer Wahl:
die Mitte des Kreises. Die Verbindung dieser Segmente geben kann, die Sie
der Durchmesser des Kreises. Beide Segmente haben in der Mitte des
Kreis als Ihre 1 definieren Punkt. Die anderen 2 Punkte definieren (was
Sie brauchen, um zu speichern) sind auf dem Umfang des Kreises (verwenden Sie die
radius Länge des Kreises, um Sie zu finden).
im Uhrzeigersinn und die andere gegen den Uhrzeigersinn. Speichern Sie Ihre neue
Koordinaten. Zeichnen Sie die Linie, die Sie verbindet. Sie haben die 2 von der
3 Ecken.
Kreis radius und die zwei Liniensegmente, jeder von Ihnen beginnt seine
jeweiligen Dreieck Eckpunkt.
Hoffe, das hilft. Ich werde versuchen, fügen Sie einige Zeichnungen zu klären, ein bisschen mehr die Schritte dieser Methode. Auch werde ich das Programm und testen Sie diese Schritte, um sicherzustellen, dass Ihr problem lösen richtig.
InformationsquelleAutor Kapoios
Ich brauchte, um zu zeichnen Sie ein gleichseitiges Dreieck mit SVG und Javascript...
Versuchte ich Xantix Antwort auf die erste Frage, um zu zeichnen ein gleichseitiges Dreieck gegeben a center point (cx,cy) und radius des Umkreises (r), die wie gezeigt, leicht löst Koordinaten für den Punkt C (cx, cy + r).
Allerdings, ich konnte nicht herausfinden, wie man die Rotations-Gleichungen zu lösen, entweder die Koordinaten für die Punkte A & B, also meine Lösung ist wie folgt.
Math-mal - lösen Sie für x
Übernehmen cx = 9, cy = 9, r = 6, und eine horizontale Basis.
Suchen Sie zunächst die Länge der Seiten des Dreiecks (a,b,c):
Sobald wir wissen, die Länge von jeder Seite des Dreiecks (s = 10.39), können wir berechnen für x-Koordinaten. Fügen Sie s/2 (5.2) für Bx cx (14.2), und subtrahieren s/2 von cx für Ax (3.8).
x gelöst, jetzt müssen y
Apropos s/2, wenn wir teilen das Dreieck in der Mitte vertikal (von Punkt C zum Mittelpunkt zwischen den Punkten A & B), können wir lösen nach y (letztlich geben uns Ay und By):
Subtrahieren dieser y-Wert cy + r (15 - 8.99 = 6.01) gibt uns unser neu y-Diagramm für die beiden Punkte A und B.
Abschluss
Sobald wir wissen, die Länge der Seiten eines equilaterial Dreieck, ist es möglich zu berechnen, die Punkt-Koordinaten einen Mittelpunkt, Umkreis-radius, und eine horizontale Basis.
InformationsquelleAutor Ragamffn
Für alle faulen (wie mich), der will nur die Koordinaten für ein gleichseitiges Dreieck auf der Einheit Kreis:
Für eine andere position und/oder radius, multiplizieren alle Werte von
r
ist, dann fügen Siecx
zu denx
Koordinaten undcy
zu deny
s.InformationsquelleAutor Robert
Dies ist mein Methoden für die Zeichnung Dreieck auf java (android):
Wo PointD ist ähnlich PointF, aber mit double-Typ.
InformationsquelleAutor Oleksandr Albul