近期用Qt开发手机应用,有个让用户用手指在屏幕自由画线的需求,所以查阅了一些资料,初步实现了画线功能。
但是发现在设置线条粗细大于5.0,线条有弧度时,会产生明显的断裂效果。
效果图:
于是查看文档,发现线条样式除了设置宽以外,还有3个属性。
按文档描述,lineJoin应该可以解决断裂问题,但是测试并没有效果,查看示例代码,应该是需要在stroke之前画的2条线才会形成拐角效果。
于是只能尝试使用lineCap,即设置线条端点样式为圆形线帽,成功解决问题。
附上代码:
1 var ctx = getContext(‘2d‘) 2 ctx.beginPath(); 3 ctx.lineCap="round"; 4 ctx.moveTo(lastPosX, lastPosY) 5 lastPosX = area.mouseX 6 lastPosY = area.mouseY 7 ctx.lineTo(lastPosX, lastPosY) 8 ctx.stroke()
效果图:
原文:http://www.cnblogs.com/mysnk/p/6362245.html