2009-12-27 32 views
4

我在iPhone编程方面有经验,但在图形编程方面并不真实。在Quartz中绘制一个公式

我决定制作2D游戏,并为此选择Quartz 2D(我熟悉OpenGL,但石英似乎更容易2D游戏)。

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

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

预先感谢您。

回答

5

你可以计算出你想渲染方程的一些离散采样。
根据您提供的样本数量,您的图形看起来很平滑或呈多边形。

This blog post描述了如何呈现Mac OS X应用程序的波形。
由于作者正在使用Quartz,并且您可能可以调整他的方法来解决您的问题。
博客文章使用方便的CGPathAddLines()方法从点数组创建路径。
如果你想构建一块你的路径一块,你可以使用一些下面的方法:

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

这里没有内置Quartz的东西;你必须用数学分别绘制每个点。

2

对于绘制任意数学表达式,可以使用Graham Cox的GCMathParser来获取包含该表达式的NSString并评估该表达式的各种值。然后您可以使用Core Plot(如Jasarien所建议)来创建这些值的图表。实际上,我有一个示例应用程序可以做到这一点,我将很快添加到该项目中。

相关问题