如何使用iOS Quartz 2D绘图绘制这个复杂的形状?

时间:2014-02-21 12:15:45

标签: ios objective-c quartz-2d

我知道如何使用iOS Quartz 2D绘图绘制简单的形状 - 矩形,椭圆和线条等。

刚才我正试图绘制一个相对复杂的形状,即音乐颤音的尾巴:

Quaver

有人能提出一个解决这个问题的好方法吗?

4 个答案:

答案 0 :(得分:3)

您可以在Inkscape等图形程序中设计quaver,导出为SVG,然后使用SVGKit进行渲染吗?从开发级别来看,维护可以直观更新的内容会更容易,而不是尝试使用代码绘制形状。

答案 1 :(得分:3)

我从设计师那里学到的是,您从一个简单的表单开始,然后以单个小步骤扩展和更改它。稍后您会到达复杂的表格。所以,就像@Duncan C建立一条路径一样。现在我知道这很乏味。这里没有提到的另一个选择是PaintCode,一个从你的绘图中生成Cocoa代码的应用程序。它被称为PaintCode,应该做你想要的。顺便说一下,我与PaintCode的制造商没有联系!

答案 2 :(得分:2)

您可以将其绘制为填充的UIBezierPath(它是CGPath上的UIKit包装器)。

你打开一条路径,绘制一系列直线和三次或二次贝塞尔曲线,然后关闭路径。然后你将它画成一条填充的路径。

创建路径后,您可以通过一次调用来绘制它。

答案 3 :(得分:0)

有几种选择,正如Duncan似乎回答了这个问题。

一种选择是动态缩放高分辨率图像。

这种方法有一点需要注意:你不应该将任何东西缩放到原始尺寸的1/2以下,否则插值会出现故障。

所以你需要在64x64,128x128,256x256等处存储图像

你可以将所有这些打包成一个256x512,这就是许多游戏所做的。

另一种选择是渲染一个quaver unicode character http://www.fileformat.info/info/unicode/char/266a/index.htm