Path类中的moveTo和lineTo

1、moveTo
moveTo 不会进行绘制,只用于移动移动画笔。
结合以下方法进行使用。

2、lineTo
lineTo 用于进行直线绘制。

mPath.lineTo(300, 300);
canvas.drawPath(mPath, mPaint);

默认从坐标(0,0)开始绘制。

刚才我们不说了moveTo是用来移动画笔的吗?

mPath.moveTo(100, 100);
mPath.lineTo(300, 300);
canvas.drawPath(mPath, mPaint);

把画笔移动(100,100)处开始绘制

3.Canvas.translate(float dx, float dy) 平移

参数里的 dx 和 dy 表示横向和纵向的位移
canvas.save();  
canvas.translate(200, 0);  
canvas.drawBitmap(bitmap, x, y, paint);  
canvas.restore();  

4.Canvas.scale(float sx, float sy, float px, float py) 放缩

参数里的 sx sy 是横向和纵向的放缩倍数; px py 是放缩的轴心。

canvas.save();  
canvas.scale(1.3f, 1.3f, x + bitmapWidth / 2, y + bitmapHeight / 2);  
canvas.drawBitmap(bitmap, x, y, paint);  
canvas.restore();

参考文章:

https://blog.csdn.net/lan12334321234/article/details/70049539

https://zhuanlan.zhihu.com/p/28300528

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在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()`方法用于检查路径的填充区域是否包含指定点。你可以根据你的需求选择其中一种方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值