美文网首页
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