4

iPhone プログラミングの経験はありますが、グラフィックス プログラミングの経験はありません。

私は 2D ゲームを作成し、この目的のために Quartz 2D を選択することにしました (私は Open GL に精通していますが、2D ゲームには Quartz の方が簡単なようです)。

Quartz で数式のグラフを描画する組み込みの方法はありますか? 最初は放物線 (y=ax^2+bx+c) だけですが、方程式自体は将来的にもっと複雑になります。

独自のアルゴリズムを使用して (別々の線または点から) 放物線を描画すると、かなり遅くなる可能性があります。

前もって感謝します。

4

5 に答える 5

5

レンダリングしたい方程式のいくつかの離散サンプルを計算できます。
提供するサンプルの数に応じて、グラフは滑らかまたは多角形に見えます。

このブログ投稿では、Mac OS X アプリケーションの波形をレンダリングする方法について説明します。
著者は Quartz を使用しているため、おそらく彼のアプローチを問題に適応させることができます。
このブログ投稿では、便利な CGPathAddLines() メソッドを使用して、ポイント配列からパスを作成しています。
パスを少しずつ構築したい場合は、次の方法のいくつかを使用できます。

CGMutablePathRef path = CGPathCreateMutable(); 
CGPathMoveToPoint(path, ...);
CGPathAddLineToPoint(path, ...);
CGPathAddArc(path, ...);
CGPathCloseSubpath(path);
于 2009-12-27T17:58:35.817 に答える
2

任意の数式をプロットするには、Graham CoxのGCMathParserを使用して、式を含むNSStringを取り込み、その式のさまざまな値を評価できます。次に、コアプロット(Jasarienによって提案された)を使用して、これらの値のグラフを作成できます。実際、これを実行するサンプルアプリケーションがあります。これは、まもなくプロジェクトに追加する予定です。

于 2009-12-27T23:24:04.227 に答える
2

CorePlotフレームワークのようなものを使用するのはどうですか?

于 2009-12-27T18:07:43.660 に答える
1

Quartz はベジエ曲線を使用します

于 2009-12-27T17:54:49.100 に答える
0

このために Quartz には何も組み込まれていません。数学を使用して各ポイントを個別にプロットする必要があります。

于 2009-12-27T17:51:10.187 に答える