数学関数をプロットし、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 で描画され、点が接続されています。画像を参照してください。
グラフを正しく描画できるように、未定義の点を評価するにはどうすればよいですか? グラフを正しく描画する多くのプロット Web サイトがあるため、解決策があることはわかっています。
ヒントやあらゆる種類のヘルプをいただければ幸いです。また、魔法のようなコードを自由に含めることができます ;) ありがとうございます!
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 )