iOS:具有动态宽度的CGPath线条图

时间:2014-01-01 12:43:17

标签: ios objective-c ipad core-graphics

我想画一条动态宽度的线,如附图所示。应该是最好的方法。 ?

enter image description here

更新

我的任务是在手指移动上画线。并且线宽随着滑动速度的变化而变化。两者(线宽和手指滑动速度)成正比。

3 个答案:

答案 0 :(得分:0)

由于您发布的图像没有任何一致的高宽比例来计算和更改,我怀疑这是无法实现的。 在其他解决方案中,您可以绘制一条固定像素的线,例如2像素,并且基于绘制的长度,如果线直到中心,则膨胀宽度,然后再次开始从中心点到终点放气。

您需要查看x坐标之间的差异,否则如果使用高节点绘制正弦波,则线宽将相互重叠。

编辑:This link可能是你感兴趣的。你可以根据你的需要修改它,它在cocos2d中。

答案 1 :(得分:0)

在iOS(或Mac OS)中没有直接支持可变厚度曲线.cocos2d项目看起来是一个很好的方法。

也不支持软边曲线的边缘羽毛透明。我已经考虑过使用OpenGL实现类似于Cocos链接中概述的方法。这对于顶点着色器来说是一个很好的应用,因为它可以利用着色器中可用的并行顶点处理和矢量数学。

答案 2 :(得分:0)

看一下这篇文章Smooth Freehand Drawing。它可能会有所帮助。 您可以使用

的控制点进行操作
[path addCurveToPoint:pts[3] controlPoint1:pts[1] controlPoint2:pts[2]];

并填充两个bezierPath之间的区域。我不确定它是否会起作用,但如果你找不到其他任何东西,你可以试试。