【问题标题】:iOS: CGPath Line Drawing with dynamic widthiOS:具有动态宽度的 CGPath 线图
【发布时间】:2014-01-19 01:30:43
【问题描述】:

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

更新:

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

【问题讨论】:

标签: ios objective-c ipad core-graphics


【解决方案1】:

看看这篇文章Smooth Freehand Drawing。这可能会有所帮助。 您可以使用控制点进行操作

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      Edited : This link 可能你会感兴趣。你可以根据需要修改它,它在 cocos2d 中。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 2021-02-11
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 2012-09-21
      • 2013-09-02
      相关资源
      最近更新 更多