Gibt es eine einfache Möglichkeit, mit dem HTML5-Canvas-Element eine echte isometrische Projektion zu erhalten?
7
Gibt es eine einfache Möglichkeit, mit dem HTML5-Canvas-Element eine echte isometrische Projektion zu erhalten?
Antworten:
Eine der Eigenschaften einer isometrischen Projektion (und aller axonometrischen Projektionen) ist, dass Objekte in der Ferne nicht kleiner werden.
Daher unterstützt HTML5 trivialerweise isometrische Projektionen, da Sie einfach alle Ihre Kunstobjekte auf diese Weise zeichnen und überlagern können, um die Tiefe zu erzeugen.
quelle
Bearbeiten: Die Antwort wurde überarbeitet, damit sie klarer ist.
Hier ist ein kurzer Hinweis, wie Sie etwas Einfaches wie ein Quadrat so ändern können, dass es isometrisch ist. Was ich hier mache, sind 3 Zeichenroutinen. Zuerst zeichne ich ein normales Quadrat, dessen zentraler Ursprung die Mitte der Leinwand ist (aber Ihr Ursprung könnte überall sein). Dann mache ich einige grundlegende Berechnungen, um daraus ein isometrisches Polygon zu machen. Dies ist nicht der "richtige" Weg, dies zu tun, aber es sollte Ihnen helfen zu verstehen, was die Mathematik in der nächsten Zeichenroutine tut. Anschließend zeichne ich das Polygon mithilfe einer isometrischen Transformation neu. Dies ist eine Art Abkürzung für das, was wir im vorherigen Beispiel manuell getan haben.
Eine Erklärung, wie dieser Code funktioniert, finden Sie hier (ich habe ihn heute gerade gefunden): http://www.kirupa.com/developer/actionscript/isometric_transforms.htm . Dies erklärt ein wenig über ein Koordinatensystem ähnlich dem, was wir verwendet haben. Leider erklärt es nicht wirklich die Mathematik, was ich in Kürze tun werde (muss laufen).
Wie im vorherigen Beitrag erwähnt, stammt ein Teil dieses Codes von http://github.com/j03m/trafficcone , einer isometrischen Spiel-Engine für HTML5, die ich geschrieben habe. Informationen dazu, wie dieser Code zum Erstellen einer vollständigen Welt verwendet wird, finden Sie unter Engine.js und GameWorldModelIso.js. Engine.js zeigt, wie ein vollständiges Raster gezeichnet werden kann (drawMock3dGrid), und GameWorldModelIso.js zeigt, wie Sie auf den oben verwendeten grundlegenden Foren aufbauen, um in der Spielwelt zu navigieren, Dinge in Zellen zu platzieren usw., ohne über die Winkel und dergleichen nachdenken zu müssen.
quelle