我正在尝试绘制数学函数并使用 CoreGraphics 框架。我通过手动计算用户定义的数学函数的 y 坐标来计算路径。
为了绘制函数,我包含了代码的简化版本:
CGContextBeginPath(context);
CGContextMoveToPoint(context, coordinateSystemOriginX, coordinateSystemOriginY);
//Add all points
CGContextAddLineToPoint(context, newPoint.x,newPoint.y);
CGContextSetLineWidth(context, 2);
CGContextSetStrokeColorWithColor(context, [[UIColor redColor] CGColor]);
CGContextStrokePath(context); //Connect them
这工作正常,但遗憾的是用户可能会输入一个不连续的函数,比如
y = 10/x //undefined value for x=0
但是图形是在 x=0 处绘制的,并且点是连接的。看图片:
如何评估未定义的点,以便能够正确绘制图形?我知道有一个解决方案,因为有许多绘图网站可以正确绘制图表。
小费或任何类型的帮助将不胜感激。您还可以免费包含一些神奇的代码;)谢谢!
NSArray*undefinedPoints = [self someMagicFunction:(id)mathematicalExpression];
//returns 0 for mathematicalExpression = 10/x and 1 for 10/(x-1)
顺便说一句,我正在使用 ANExpressionParser 类来解析用户输入。( http://mac.softpedia.com/progDownload/ANExpressionParser-Download-86833.html )