利用canvas绘制简单的直角坐标系

25 篇文章 0 订阅
2 篇文章 0 订阅

    <style>
        canvas{
            border: 1px solid #ccc;
        }
    </style>

<script>
    var myCanvas=document.querySelector('canvas');
    var ctx=myCanvas.getContext('2d');

    /*1.绘制坐标系*/
    /*2.确定原点*/
    /*3.确定距离画布旁边的距离*/
    /*4.确定坐标轴的长度*/
    /*5.确定箭头的大小 是个等腰三角形 10*/
    /*6.绘制箭头填充*/

    var space=20;
    var arrowSize=10;

    /*计算原点*/
    var canvasWidth=ctx.canvas.width;
    var canvasHeight=ctx.canvas.height;

    var x0=space;
    var y0=canvasHeight-space;

    /*绘制x轴*/
    ctx.beginPath();
    ctx.moveTo(x0,y0);
    ctx.lineTo(canvasWidth-space,y0);

    /*箭头*/
    ctx.lineTo(canvasWidth-space-arrowSize,y0+arrowSize/2);
    ctx.lineTo(canvasWidth-space-arrowSize,y0-arrowSize/2);
    ctx.lineTo(canvasWidth-space,y0);
    ctx.fill();
    ctx.stroke();

    /*绘制y轴*/
    ctx.beginPath();
    ctx.moveTo(x0,y0);
    ctx.lineTo(space,space);
    /*箭头*/
    ctx.lineTo(space-arrowSize/2,space+arrowSize);
    ctx.lineTo(space + arrowSize / 2, space + arrowSize);
    ctx.lineTo(space,space);
    ctx.fill();
    ctx.stroke();
</script>

好的,我可以帮您解答这个问题。下面是利用Canvas进行绘制XY坐标的代码示例: ```html <!DOCTYPE html> <html> <head> <title>Canvas绘制XY坐标</title> <style> canvas { border: 1px solid #000; } </style> </head> <body> <canvas id="myCanvas" width="400" height="400"></canvas> <script> // 获取canvas元素 var canvas = document.getElementById("myCanvas"); // 获取canvas上下文 var ctx = canvas.getContext("2d"); // 绘制X轴 ctx.beginPath(); ctx.moveTo(20, 380); ctx.lineTo(380, 380); ctx.stroke(); // 绘制Y轴 ctx.beginPath(); ctx.moveTo(20, 20); ctx.lineTo(20, 380); ctx.stroke(); // 绘制X轴箭头 ctx.beginPath(); ctx.moveTo(380, 380); ctx.lineTo(370, 370); ctx.moveTo(380, 380); ctx.lineTo(370, 390); ctx.stroke(); // 绘制Y轴箭头 ctx.beginPath(); ctx.moveTo(20, 20); ctx.lineTo(10, 30); ctx.moveTo(20, 20); ctx.lineTo(30, 30); ctx.stroke(); // 绘制X轴刻度 var stepX = 40; for (var i = 0; i < 8; i++) { ctx.beginPath(); ctx.moveTo(20 + stepX * (i + 1), 380); ctx.lineTo(20 + stepX * (i + 1), 370); ctx.stroke(); } // 绘制Y轴刻度 var stepY = 40; for (var i = 0; i < 8; i++) { ctx.beginPath(); ctx.moveTo(20, 380 - stepY * (i + 1)); ctx.lineTo(30, 380 - stepY * (i + 1)); ctx.stroke(); } // 标注X轴坐标 ctx.font = "12px Arial"; ctx.fillText("0", 10, 395); ctx.fillText("1", 50, 395); ctx.fillText("2", 90, 395); ctx.fillText("3", 130, 395); ctx.fillText("4", 170, 395); ctx.fillText("5", 210, 395); ctx.fillText("6", 250, 395); ctx.fillText("7", 290, 395); ctx.fillText("8", 330, 395); // 标注Y轴坐标 ctx.fillText("0", 5, 385); ctx.fillText("1", 5, 345); ctx.fillText("2", 5, 305); ctx.fillText("3", 5, 265); ctx.fillText("4", 5, 225); ctx.fillText("5", 5, 185); ctx.fillText("6", 5, 145); ctx.fillText("7", 5, 105); ctx.fillText("8", 5, 65); </script> </body> </html> ``` 这段代码使用了Canvas的API来绘制XY坐标,其中包括绘制坐标轴、箭头、刻度和标注坐标等步骤。您可以将代码复制到一个HTML文件中并在浏览器中打开来查看效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值