我对 Xcode 很陌生,所以我决定习惯 Quartz 绘图,虽然我正在慢慢习惯它,但我在绘制贝塞尔曲线时遇到了麻烦。
特别是,从我的 Illustrator 设计中,虽然 x 和 y 点没问题,但我想绘制一个形状(一包扑克牌中的 Spade 徽标),但我想我混淆了哪个点是第一个控制点,哪个是第一个控制点是第二个。
我一直把它想象成,如果你想象一张 table 并沿着它的顶部旋转形状的外部(所以形状总是在 table 上,与它的下面相反),第一个控制点在左边,第二个是在右边。
这是什么情况?
提前致谢,亚当。
这是我的代码:
CGMutablePathRef spadePath = CGPathCreateMutable();
CGPathMoveToPoint(spadePath, NULL, 17.0f, 0.0f);
CGPathAddCurveToPoint(spadePath, NULL, 17.0f, 7.3f, 17.0f, 7.318f, 34.0f, 25.475f);
CGPathAddCurveToPoint(spadePath, NULL, 34.0f, 14.754f, 34.0f, 36.197f, 20.838f, 35.029f);
CGPathAddCurveToPoint(spadePath, NULL, 24.679f, 38.425f, 20.838f, 41.03f, 17.0f, 39.2f);
CGPathAddCurveToPoint(spadePath, NULL, 2.846f, 39.2f, 31.156f, 39.2f, 13.163f, 35.029f);
CGPathAddCurveToPoint(spadePath, NULL, 13.163f, 41.03f, 9.323f, 38.425f, 0.0f, 25.475f);
CGPathAddCurveToPoint(spadePath, NULL, 0.0f, 36.197f, 0.0f, 14.754f, 17.0f, 0.0f);
CGPathCloseSubpath(spadePath);
最佳答案
我刚刚找到了我自己问题的答案,在绘制曲线时,您是在告诉它该部分的基本坐标。
因此,在解析控制点 1 的 x 和 y 坐标时,您将基本控制点的控制点坐标提供给起点,并为最后一个点提供相同的控制点坐标,以及最后一个点的位置。
例如,
关于objective-c - CGPath (AddCurveToPoint) - 第一个控制点的 x 和 y 与第二个之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11148054/