canvas beginPath()的初步理解


canvas的坑真是太大了,w3school上也只是一些簡單的例子,還得自己好好研究下。剛學到beginpath(),意思是開始畫一條線。

來段代碼

<html>
<head>
    <title>canvas</title>
</head>
<canvas id=myCanvas width=500px height=500px></canvas>

<script>
    var myCanvas = document.getElementById("myCanvas");
    var context = myCanvas.getContext("2d");

    context.fillStyle = "#000";
    context.fillRect(0,0,500,500);

    context.beginPath();

    context.moveTo(100,100);
    context.lineTo(200,100);
    context.strokeStyle = "red";
    context.stroke();

    context.beginPath();
    context.moveTo(100,200);
    context.lineTo(200,200);
    context.strokeStyle = "blue";
    context.stroke();

    context.beginPath();
    context.moveTo(100,300);
    context.lineTo(200,300);
    context.strokeStyle = "yellow";
    context.stroke();
</script>
</html>

 在不修改代碼的前提下,顯示的樣式是會出現紅、藍、黃、三條線

接下來我們注釋第2個stroke(),發現第2根藍線消失了,僅僅顯示紅線和黃線。stroke() 方法會實際地繪制出通過 moveTo() 和 lineTo() 方法定義的路徑。默認顏色是黑色。

當我們把3個beginPath() 注釋起來,神奇的事情就發生了:依次出現了橙、綠、黃三條線。情況貌似是在沒有beginPath()的情況下,stroke會疊加執行,即:第一個stroke會畫一條紅線;第二個stroke會畫兩條藍線,第三個stroke會畫三條黃線,那么對應的上面橙色線條就是紅藍黃的疊加色,中間綠色就是紅和藍的疊加色,最后的黃色,就是黃色。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM