Erstellen gleichseitiges Dreieck in der Mitte der Leinwand?
Ich will zeichnen Sie ein gleichseitiges Dreieck in der Mitte des canvas-Bereichs. Ich versuchte dies:
ctx.moveTo(canvas.width/2, canvas.height/2-50);
ctx.lineTo(canvas.width/2-50, canvas.height/2+50);
ctx.lineTo(canvas.width/2+50, canvas.height/2+50);
ctx.fill();
Aber das Dreieck sieht ein bisschen zu groß.
Wie kann ich zeichnen Sie ein gleichseitiges Dreieck in der Mitte der Leinwand?
Jemand sagte mir, dass Sie haben, um das Verhältnis der Höhe eines gleichseitigen Dreiecks auf die Seite eines gleichseitigen Dreiecks.
h:s
Was sind die beiden zahlen?
InformationsquelleAutor user824294 | 2012-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie es zu tun mit der Höhe des Dreiecks
oder
So ist das Verhältnis
h:s
ist gleich:Siehe : http://jsfiddle.net/rWSKh/2/
h : s = Math.sqrt( 3 ) / 2 : 1
?ya oder
Math.cos(Math.PI/6)
oder einfach 0.866Wenn ich drehen Sie das Dreieck, es ist nicht mehr zentriert um das ursprüngliche Zentrum. Wie kann ich dieses Problem beheben?
Könnte mir jemand erklären, warum dies notwendig ist, und warum zum Beispiel in der Frage nicht funktioniert?
InformationsquelleAutor Diode
Die Gleichung für die drei Eckpunkte ist
wo für Winkel = 0, (1./3)*(2*pi), und (2./3)*(2*pi); und wobei r ist der radius des Kreises, in dem das Dreieck eingeschrieben ist.
Ich habe diese awesome Methode, um Pfeile auf Leinwand - stackoverflow.com/a/36805543/1828637 - vielen Dank dafür!
InformationsquelleAutor tom10
Einer einfachen version, wo X und Y sind die Punkte, die Sie wollen Spitze des Dreiecks werden:
Dies ist ein gleichseitiges triange mit allen Seiten = 100. Ersetzen 100 mit, wie lange Sie möchten Ihre Seite Längen auf.
Nachdem Sie den Mittelpunkt der Leinwand, wenn Sie wollen, dass Ihre Dreiecks-Mittelpunkt sowie können Sie einstellen, X = Mittelpunkt X und Y = Mittelpunkt Y - 50 (für 100 Länge Dreieck).
InformationsquelleAutor Instinct
Die Seitenlängen nicht gleich gegeben, diese Koordinaten.
Die horizontale Linie gebaut, auf der Unterseite hat eine Länge von 100, aber die anderen Seiten sind eigentlich die hypotenuse eines 50x100 Dreieck ( ca. 112).
InformationsquelleAutor Jeffrey Sweeney
Kann ich loslegen mit der Zeichnung eines gleichseitigen Dreiecks, aber ich habe nicht die Zeit, um es zentriert.
jsFiddle
InformationsquelleAutor j08691
mein code für das zeichnen Dreieck auch je nach Richtung (für die Linien). code ist für Raphael lib.
InformationsquelleAutor sirjay