Jun 03
Regelmäßige Vielecke mit Canvas
In letzter Zeit habe ich mich verstärkt wieder mal mit Canvas beschäftigt. Dabei ging es mir vor allem um regelmäßige Vielecke (englisch: regular polygons).
Von Haus bietet Canvas in keiner Implementierung eine Funktion zum schnellen und einfachen Erzeugen von regelmäßigen Vielecken. Daher setzte ich mich hin und programmierte angeregt durch canvas.quaese.de zwei entsprechenende canvas-Objekterweiterungen.
Außerdem wollte ich gern gezackte Figuren wie Sterne und Sonnen mit einem Funktionsaufruf erzeugen können. Also nahm ich meinen bisherigen Code her und überarbeitete ihn.
Das Ergebnis all des Codens kann sich meines Erachtens sehen lassen. Vor allem bei Mehrfachaufrufen ergeben sich sehr schicke Muster.
Die Methoden selbst sind nach einem simplen Prinzip aufgebaut. Man gibt die Position des Vieleckmittelpunktes, die Anzahl der Ecken, den Radius (Mittelpunkt->Ecke) und Anfangswinkel (meist 0) an.
Den Quelltext der Objekterweitungen kann ich nachfolgend sehen:
canvas.drawPoly = function(x,y,n,r,phi) { this.translate(x,y); this.rotate(phi); this.beginPath(); this.moveTo(0,r); for( var i=0; i<=n; i++){ this.save(); this.rotate(2*i*Math.PI/n); this.lineTo(0,r); this.restore(); } this.stroke(); this.rotate(-phi); this.translate(-x,-y); } canvas.fillPoly = function(x,y,n,r,phi) { this.translate(x,y); this.rotate(phi); this.beginPath(); this.moveTo(0,r); for( var i=0; i<=n; i++){ this.save(); this.rotate(2*i*Math.PI/n); this.lineTo(0,r); this.restore(); } this.fill(); this.rotate(-phi); this.translate(-x,-y); } canvas.drawZickzack = function(x,y,n,r1,r2,phi) { this.translate(x,y); this.rotate(phi); this.beginPath(); this.moveTo(0,r1); for( var i=0; i<=n; i++){ this.save(); this.rotate(2*i*Math.PI/n); this.lineTo(0,r1); this.restore(); this.save(); this.rotate(2*i*Math.PI/n+(2*Math.PI/n)/2); this.lineTo(0,r2); this.restore(); } this.stroke(); this.rotate(-phi); this.translate(-x,-y); } canvas.fillZickzack = function(x,y,n,r1,r2,phi) { this.translate(x,y); this.rotate(phi); this.beginPath(); this.moveTo(0,r1); for( var i=0; i<=n; i++){ this.save(); this.rotate(2*i*Math.PI/n); this.lineTo(0,r1); this.restore(); this.save(); this.rotate(2*i*Math.PI/n+(2*Math.PI/n)/2); this.lineTo(0,r2); this.restore(); } this.fill(); this.rotate(-phi); this.translate(-x,-y); } // Anwendungsbeispiel: canvas.fillStyle = "#009"; canvas.strokeStyle = "rgb(0,0,0)"; canvas.lineWidth = 2; // Sechseck canvas.drawPoly(60,60,6,40,0);
Im Grundlagenbeitrag zu Canvas kann man sich genauere Informationen zum Einbau holen. Auch ein Blick in den Quellcode meiner angefertigen Demo hilft sich dem ein oder anderen und zeigt die Möglichkeiten der Methoden auf.
Ähnliche Themen im Blog:
Juni 23rd, 2024 at 7:39 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://www.vesttech.com/what-you-dont-know-about-wearable-tech-radiation-exposure/
Juni 28th, 2024 at 10:36 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://www.les-voyageuses.net/2017/12/astuces-conseils-economies-en-voyage/
Juni 30th, 2024 at 11:31 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://redcambera.org/mejora-del-habitat-para-los-anfibios-en-cieza-domingo-29-de-noviembre/
Juni 30th, 2024 at 10:56 pm
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://maisgazeta.com/saloes-de-beleza-clubes-e-academias-agora-estao-proibidos-de-funcionar-na-onda-vermelha/
Juli 1st, 2024 at 3:53 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://www.mmanews.com/2019/11/ufc-champion-kamaru-usman-isnt-joyful-over-ben-askrens-skid/
August 8th, 2024 at 9:43 am
bursa travesti
bursa travesti
August 14th, 2024 at 11:22 pm
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://thuongtruong24h.net/bat-dong-san-tx-ky-anh-ha-tinh-chuyen-minh-don-song-dau-tu/
August 23rd, 2024 at 5:26 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://kattu-0403.com/ticket
August 26th, 2024 at 11:39 am
bursa travesti tumblr
bursa travesti tumblr
August 30th, 2024 at 6:47 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://ccnstosa.com
August 31st, 2024 at 7:31 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://dailyorange.com/2005/11/homecrushing-south-florida-shuts-out-su-before-homecoming-crowd/
September 9th, 2024 at 4:08 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://avleonov.com/2017/11/16/harassment-scandals-sheldon-cooper-black-mirror-and-blockchain/
September 12th, 2024 at 11:05 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://eco-officegals.com/author/guest-post/
September 25th, 2024 at 6:46 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
http://spanien.jorgo.org/2008-11-19_spanien-liegt-in-der-eu-ganz-vorne-bei-den-arbeitsstunden-pro-tag/
Oktober 3rd, 2024 at 11:58 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://oldpcgaming.net/entomorph-plague-of-the-darkfall/
Oktober 3rd, 2024 at 7:09 pm
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://www.arabnews.jp/en/middle-east/article_13597/
Oktober 6th, 2024 at 10:36 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
http://cursotendencia.com.br/contato/
Oktober 12th, 2024 at 6:24 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
http://abstractgourmet.com/2006/10/latte-art-pro-style/
Oktober 14th, 2024 at 11:46 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
http://www.fantasydecoratingdiy.com/2018/06/30/weird-sisters-double-double-toil-trouble/
Oktober 18th, 2024 at 11:42 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://www.kilometermacher.at/sinewave-cycles-revolution-testbericht/
Oktober 21st, 2024 at 12:17 pm
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://www.techdecisionsltd.com/custom-printed-packaging-boxes-using-printing-technology-how-to-go-about-it/
Oktober 22nd, 2024 at 5:32 pm
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://allsuppliesco.com/powerful-quotes-every-architect-should-live-by/%5Dhttp://buy-backlinks.rozblog.com/
November 5th, 2024 at 7:00 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
http://mojra.com.pl/2024/05/18/jakie-sa-roznice-miedzy-kasynem-online-a-kasynem-stacjonarnym/
November 6th, 2024 at 9:55 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://steffen-appel.de/
November 15th, 2024 at 4:13 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://www.spiritualmanna.info/tag/peer-groups/
November 16th, 2024 at 4:15 pm
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://religionandpolitics.org/2018/09/18/missouri-an-ozarks-native-crosses-the-show-me-state/
November 19th, 2024 at 7:38 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://qrks.cc/charm/raye-love-of-your-life-official-video/
November 23rd, 2024 at 1:11 pm
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
https://antiga.carevolta.org/passejat-dijous-17112016-21h00/
Dezember 5th, 2024 at 8:11 am
Regelmäßige Vielecke mit Canvas | Ajaxschmiede.de
http://laceyfriends.org