iOS: 使用动态宽度绘制CGPath线条

5
我希望能画一条动态宽度的线,就像附图所示。请问最佳实现方法是什么?
更新:
我的任务是在手指移动时绘制线条。随着滑动速度的变化,线条的宽度也会发生变化。两者(线宽和手指滑动速度)成正比例关系。

不知道这是否能帮到你。回复有点晚了:http://merowing.info/2012/04/drawing-smooth-lines-with-cocos2d-ios-inspired-by-paper/ - Sandeep Singh
3个回答

1

iOS(或Mac OS)没有直接支持可变厚度曲线的功能。cocos2d项目看起来是一个不错的选择。

同时,iOS也不支持边缘柔化并渐变至透明的曲线。我考虑过使用OpenGL实现类似于Cocos链接中所述的方法。这将是一个很好的应用程序,可以利用着色器中可用的并行顶点处理和向量数学。


0

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

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

编辑:此链接可能会引起您的兴趣。您可以根据自己的需要进行修改,它是用cocos2d编写的。



0

看一下这篇文章平滑的手绘图。它可能会有所帮助。 你可以操纵控制点

[path addCurveToPoint:pts[3] controlPoint1:pts[1] controlPoint2:pts[2]];

并填充两个贝塞尔路径之间的区域。我不确定它是否有效,但如果您找不到其他方法,可以尝试一下。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接