【发布时间】:2010-12-13 17:51:25
【问题描述】:
我想根据一天中不同时间点的太阳坐标以编程方式构建CGPathRef。计算点数不是问题,但我想制作一个平滑的CGPathRef,并认为CGPathAddCurveToPoint 是合适的。
我了解路径、变换、x 和 y 参数,但我不确定其他参数。根据 Apple 文档,它们是控制点,我猜它们就像您在矢量绘图程序中看到的那样,您可以在其中调整曲线通过该点的方式。
我的问题是如何选择与我的坐标相关的点,而无需提前知道这些坐标是什么?我在想也许只是从每个第一个控制点中减去一个设定的数量,然后将相同的数量添加到第二个控制点,但这对我来说听起来过于简单。是否有一种标准方法可以生成对平滑曲线“有意义”的控制点?
void CGPathAddCurveToPoint (
CGMutablePathRef path,
const CGAffineTransform *m,
CGFloat cp1x,
CGFloat cp1y,
CGFloat cp2x,
CGFloat cp2y,
CGFloat x,
CGFloat y
);
【问题讨论】:
-
由于我在遇到这个问题的时候发现了这个问题:如果你习惯了Illustrator等矢量图形软件,控制点的含义与Core Graphics中使用的略有不同。如果你有一个路径 [(a1,p1,b1),(a2,p2,b2),...] 其中 pi 是点,ai 是视觉上连接到它们的控制点,Core Graphics 中的等效路径将开始与 [(b1,p2,a2),...] (在 p1 的 moveToPoint 之后)。我希望这对某人有帮助。
标签: ios core-animation cgpath