怎樣繪制一個與兩條直線相切的圓弧


需要使用ctx.arcTo(), 參數是兩個控制點的坐標, 比如下面的例子: 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <canvas id="canv" width="300" height="300"></canvas>
    <script>
        function draw() {
            var canvas = document.getElementById('canv');
            if (!canvas.getContext) return;
            var ctx = canvas.getContext("2d");
            ctx.beginPath();
            ctx.moveTo(50, 50);
            //參數1、2:控制點1坐標   參數3、4:控制點2坐標  參數4:圓弧半徑
            ctx.arcTo(200, 50, 200, 200, 140);
            ctx.lineTo(200, 200)
            ctx.stroke();

            // 繪制控制點
            ctx.beginPath();
            ctx.rect(50, 50, 5, 5);
            ctx.rect(200, 50, 5, 5)
            ctx.rect(200, 200, 5, 5)
            ctx.fill();
        }
        draw();
    </script>
</body>

</html>

 

 

注意: 

1. ctx.arcTo() 可以繪制與兩條直線相切的圓弧;

2. ctx.rect() 可以繪制閉合的矩形; 

function draw() {
    var canvas = document.getElementById('canv');
    if (!canvas.getContext) return;
    var ctx = canvas.getContext("2d");
    ctx.beginPath();
    ctx.rect(100, 100, 100, 50);
    ctx.stroke();
}
draw();

 


免責聲明!

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



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