kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Das Canvas-Element

(EN google-translate)

(PL google-translate)

In das Canvas-Element kann "hinein gemalt" werden. D.h. von Javascript aus können an bestimmte Koordinaten mit bestimmten Befehlen Linien, Primitive und auch Text gesetzt werden.

Ein Beispiel soll dies demonstrieren:


<html>
    <head lang="de">
        <meta charset="iso-8859-1">
        <script language:javascript>
            let HEXA = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];

            var malkontext = null;

            var muenzwurf_x = 0.901;

            function muenzwurf()
            {
                muenzwurf_x = 3.92*muenzwurf_x*(1.0-muenzwurf_x);
                return (Math.round(muenzwurf_x*1000.0))%2;
            }

            function muenzwurf1000(max)
            {
                var x = 0;
                var y = 0;
                var z = 0;
                for(var i=0;i<1000;i++)
                {
                    x+=muenzwurf();
                    y+=muenzwurf();
                    z+=muenzwurf();
                }
                return (x+y*103+z*911)%max;
            }

            //Farbbeispiele: http://html-color-codes.com/rgb.html
            function farbe(r,g,b)
            {
                return "#"+HEXA[Math.floor(r/16)]+HEXA[r%16]+HEXA[Math.floor(g/16)]+HEXA[g%16]+HEXA[Math.floor(b/16)]+HEXA[b%16];         
            }


            function malen()
            {
                //Lazy binding: 
                //Erst, wenn etwas benötigt wird, wird es bereitgestellt.
                if(malkontext==null) 
                {
                    malkontext = document.getElementById("grafik").getContext("2d"); 
                }

                for(var i=0;i<100;i++)
                {
                    var x = muenzwurf1000(500);//+muenzwurf10000(200)+muenzwurf10000(200);
                    var y = muenzwurf1000(200);
                    var breite = muenzwurf1000(100)+10;
                    var hoehe = muenzwurf1000(100)+10;
                    var ROT   = muenzwurf1000(256);
                    var GRUEN = muenzwurf1000(256);
                    var BLAU  = muenzwurf1000(256);
                    malkontext.fillStyle = farbe(ROT,GRUEN,BLAU);
                    malkontext.fillRect(x,y,breite,hoehe);
                } 
                for(var i=0;i<100;i++)
                {
                    var x = muenzwurf1000(500);//+muenzwurf10000(200)+muenzwurf10000(200);
                    var y = muenzwurf1000(200);
                    var breite = muenzwurf1000(100)+10;
                    var durchmesser = muenzwurf1000(10)+10;
                    var ROT   = muenzwurf1000(256);
                    var GRUEN = 0;
                    var BLAU  = 0;
                    malkontext.fillStyle = farbe(ROT,GRUEN,BLAU);
                    malkontext.beginPath();
                    malkontext.arc(x,y,durchmesser,0,2.0*Math.PI,true);
                    malkontext.fill();
                }   
               
            }

        </script>
    </head>
    <body>
        <input style="width:200px" type="button" id="snap" value="malen" onclick="javascript:malen()"/>
        <br/>
        <canvas id="grafik" width="500" height="200"></canvas>
    </body>
</html>

Code 0-1: Quelltext zu obigem Beispiel.