在Quartz中绘制方程式

时间:2009-12-27 17:42:00

标签: iphone cocoa-touch quartz-2d

我在iPhone编程方面有经验,但在图形编程方面却没有。

我决定制作一个2D游戏并选择Quartz 2D用于此目的(我熟悉Open GL,但石英对于2D游戏来说似乎更容易)。

是否有内置的方法在Quartz中绘制数学公式的图形?开始时它只是一个抛物线(y = ax ^ 2 + bx + c),但方程本身将来会变得更加复杂。

如果我使用自己的算法(从单独的线或点)绘制抛物线,可能会很慢。

提前谢谢。

5 个答案:

答案 0 :(得分:5)

您可以计算要渲染的方程的一些离散样本 根据您提供的样本数量,图表看起来会是平滑的或多边形的。

This blog post介绍了如何为Mac OS X应用程序渲染波形 由于作者正在使用Quartz,您可以根据自己的问题调整自己的方法 博客文章使用方便的CGPathAddLines()方法从点数组创建路径 如果您想逐个构建路径,可以使用以下某些方法:

CGMutablePathRef path = CGPathCreateMutable(); 
CGPathMoveToPoint(path, ...);
CGPathAddLineToPoint(path, ...);
CGPathAddArc(path, ...);
CGPathCloseSubpath(path);

答案 1 :(得分:2)

使用像CorePlot框架这样的东西呢?

答案 2 :(得分:2)

为了绘制任意数学表达式,您可以使用Graham Cox的GCMathParser来获取包含表达式的NSString,并为各种值计算该表达式。然后,您可以使用Core Plot(由Jasarien建议)创建这些值的图表。事实上,我有一个示例应用程序就是这样,我将很快添加到项目中。

答案 3 :(得分:1)

Quartz使用Bezier curves

答案 4 :(得分:0)

为此,Quartz没有内置任何东西;你必须使用数学单独绘制每个点。