0

我对任何类型的图形都很陌生(也许除了拍照:))所以如果我对昨晚遇到的问题的解释不是很精确和不稳定,请原谅。

我正在尝试在 Cocoa 中生成代码,该代码将在 SVG 文件的基础上绘制矢量。我已经将 SVG 命令转换为 NSBezierPath 方法的调用,但接收到的图形并不是很好……形状与基本形状相似,但有一些……扭曲(?)。这可能既不是抗锯齿问题,也不是 Cocoa 方面设置的平坦度值的问题。有人建议我这个问题可能是由 Cocoa 方法和 SVG 对贝塞尔曲线控制点的不同解释引起的——这可能吗?或者还有什么可能导致问题?

4

2 回答 2

5

SVG曲线到命令是控制点、控制点、终点。

Cocoa curveToPoint 方法取终点,控制点 1,控制点 2

于 2009-11-15T14:45:25.780 回答
0

@彼得·霍西

当然。目前我认为 Cocoa 和 SVG 的解释确实存在差异。我尝试使用基本的 SVG 示例并导致 Cocoa 有所不同。

SVG 版本:

<path d="M 100 200 C 100,100 400,100 400,200 z"/> 

可可版本:

path = [[NSBezierPath alloc] init]; 
[path moveToPoint:NSMakePoint(100, 200)]; 
[path curveToPoint:NSMakePoint(100, 100) controlPoint1:NSMakePoint(400, 100) controlPoint2:NSMakePoint(400, 200)]; 
[path sePath]; 

或者这是我没有注意到的愚蠢错误:)

// 由于缺少代码格式,我没有使用“添加评论”。

于 2009-11-15T14:28:42.173 回答