html5的canvas绘制线条,moveTo和lineTo详解

1 篇文章 0 订阅
1 篇文章 0 订阅

今天在看html5,里面新增的属性有一个canvas,它相当于一个画布你可以用js在里面画你想要的效果!我在w3c的手册里面看到用moveTo和lineTo绘制线条讲的不是很清楚,尤其是moveTo和lineTo函数没有说的很明白!所以特地在这里与新手朋友分享一下我的理解!


html5的canvas绘制线条,moveTo和lineTo详解


    一、w3c里面的代码和实现效果

    手册的代码是这样的

1
2
3
4
5
6
var  c = document.getElementById( 'myCanvas' );
var  cxt = c.getContext( "2d" );
cxt.moveTo(10, 10);
cxt.lineTo(150,50);
cxt.lineTo(10,50);
cxt.stroke();

    实现的效果是这样的

html5的canvas绘制线条,moveTo和lineTo详解


    二、详细讲解每一个步骤

    1,获取id值为myCanvas的canvas标签并赋值给c!(指定在哪里画)

    2,

1
c.getContext( '2d' );

    手册上说是返回一个用于在画布上绘图的环境,2d表示二维绘图!(指定画出的图案的类型)

    3,

1
cxt.moveTo(10, 10);

    指定义了一个起点,坐标是(20,20)!这时候的起点如下图

html5的canvas绘制线条,moveTo和lineTo详解

    4,

1
cxt.lineTo(150, 50);

    这有两个功能:

    (1)添加一条直线,起点是第3步设置的(10, 10),终点现在设置的(150, 50)!

    (2)设置新的起点为(150, 50),相当于又来了一句cxt.moveTo(150, 50);而这时候的起点如下图

html5的canvas绘制线条,moveTo和lineTo详解

    5,

1
cxt,lineTo(10, 50);

    跟上一条语句功能相同,这时候起点如下图

    

html5的canvas绘制线条,moveTo和lineTo详解

    6,

1
cxt.stroke();

    上面做了那么多的事情但始终没有在网页上面画出了,而这个语句就是将你以上所有做的事都在网页上面呈现出来!所以如果你要测试线条或者图案效果的话,一定不要忘了这一句,不然网页上面是什么都显示不出啦的!


想要每天及时获取王业楼的个人博客更新的内容吗?赶快添加微信公众号“ly89cn”,或者扫描下方的二维码吧!


本文来源于王业楼的个人博客,本文地址:http://www.ly89.cn/detailB/60.html

欢迎分享本文,转载请注明本文出处和地址

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在canvas的路径上绑定事件,您可以使用以下步骤: 1. 创建路径:使用`moveTo()`方法设置路径的起点,并使用`lineTo()`方法绘制路径。 2. 绑定事件:使用`addEventListener()`方法为canvas元素绑定事件,例如`click`、`mousemove`或`mousedown`。 3. 检查点击位置:在事件处理程序中,检查鼠标点击的位置是否在路径区域内。您可以使用`isPointInStroke()`或`isPointInPath()`方法来检查点击位置是否在路径内。 以下是一个示例代码: ```javascript // 获取canvas元素和上下文对象 var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); // 创建路径 ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(50, 150); ctx.strokeStyle = "red"; ctx.stroke(); // 绑定click事件 canvas.addEventListener("click", function(event) { var x = event.clientX - canvas.offsetLeft; var y = event.clientY - canvas.offsetTop; if (ctx.isPointInStroke(x, y)) { console.log("Clicked on path"); } }); ``` 在这个例子中,我们首先创建了一个路径,并将其绘制canvas上。然后,我们使用`addEventListener()`方法绑定了一个click事件处理程序。在事件处理程序中,我们使用`isPointInStroke()`方法检查鼠标点击是否在路径路径内,并输出相应的信息。请注意,`isPointInStroke()`方法用于检查路径的边框是否与指定点相交,而`isPointInPath()`方法用于检查路径的填充区域是否包含指定点。你可以根据你的需求选择其中一种方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值