美文网首页
canvas绘制一道数学题

canvas绘制一道数学题

作者: 最帅的坏兔子 | 来源:发表于2019-03-31 22:56 被阅读0次

在朋友圈看到一道数学题,突发奇想,用canvas绘制出这个图形。

已知圆的半径为1,正方形ABCD与圆交点如图,求正方形的边长。

image.png
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <canvas id="canvas" style="border:1px solid #c3c3c3;"></canvas>
    <script type="text/javascript">
        (function(){
            var canvas = document.getElementById('canvas');
            var ctx = canvas.getContext('2d');
            canvas.width = 600;
            canvas.height = 600;
            ctx.beginPath();
            ctx.arc(300,300,100,0,2*Math.PI);
            ctx.stroke();
            ctx.beginPath();
            ctx.strokeStyle = 'skyblue';
            ctx.strokeRect(240, 220, 160, 160);

            ctx.beginPath();
            ctx.setLineDash([5,10]);
            ctx.strokeStyle = 'blue';
            ctx.moveTo(240, 380);
            ctx.lineTo(300,300);
            ctx.stroke();

            ctx.beginPath();
            ctx.setLineDash([5,10]);
            ctx.strokeStyle = 'blue';
            ctx.moveTo(240, 220);
            ctx.lineTo(300,300);
            ctx.stroke();

            ctx.beginPath();
            ctx.setLineDash([5,10]);
            ctx.strokeStyle = 'blue';
            ctx.moveTo(300, 300);
            ctx.lineTo(400,300);
            ctx.stroke();

            ctx.beginPath();
            ctx.font = '20px "微软雅黑"';
            ctx.fillStyle = 'green';
            ctx.textBaseline = 'bottom';
            ctx.fillText('A',230,220);

            ctx.beginPath();
            ctx.font = '20px "微软雅黑"';
            ctx.fillStyle = 'green';
            ctx.textBaseline = 'top';
            ctx.fillText('B',230,380);

            ctx.beginPath();
            ctx.font = '20px "微软雅黑"';
            ctx.fillStyle = 'green';
            ctx.textBaseline = 'top';
            ctx.fillText('C',400,380);

            ctx.beginPath();
            ctx.font = '20px "微软雅黑"';
            ctx.fillStyle = 'green';
            ctx.textBaseline = 'bottom';
            ctx.fillText('D',400,220);

            ctx.beginPath();
            ctx.font = '20px "微软雅黑"';
            ctx.fillStyle = 'green';
            ctx.textAlign = 'left';
            ctx.textBaseline = 'bottom';
            ctx.fillText('E',400,310);

            ctx.beginPath();
            ctx.font = '20px "微软雅黑"';
            ctx.fillStyle = 'green';
            ctx.textAlign = 'left';
            ctx.textBaseline = 'middle';
            ctx.fillText('O',300,290);

        })();
    </script>
</body>
</html>

相关文章

网友评论

      本文标题:canvas绘制一道数学题

      本文链接:https://www.haomeiwen.com/subject/cojpbqtx.html