1

小さな描画/ペイントアプリケーションを作成する必要があったので、IPhone開発者向けのIPad開発の開始:Jack Nutting、Dave Wooldridge、DavidMarkによるIPadSDKの習得に目を向けました。

なかなかいいです。アーキテクチャは強力です。ただし、描画アプリケーション(Dudel)は、パフォーマンスの点ではあまり良くありません。2つの主要な問題があります(私にとって、現時点では):

  1. 最も重要:しばらくすると描画が遅くなります。理由:drawRectすべてのパスに対して、毎回呼び出されています。
  2. 鉛筆ツールでの描画はスムーズではありません。理由:(多分)のaddLineToPoint:代わりに使用していaddQuadCurveToPoint:ます。
  3. 消しゴムコントロールはありません。しかし、それは実際には問題ではありません。なぜなら、絵に白い色を選択して、消しゴムのような錯覚を与えることができるからです。しかし、そのためのより良い実装があれば、私は知りたいと思っています。

質問:

これらの問題に対処し、シンプルで効率的な描画アプリケーションを提供するソリューションはありますか?

注:元に戻す/やり直し機能も必要です。

4

1 に答える 1

1

あなたの質問に一つずつ答えてみようと思います。

鉛筆ツールでの描画はスムーズではありません。理由:addQuadCurveToPoint:の代わりにaddLineToPoint:を使用しています。

あなたの言うことは本当です。IOSデバイスは定義された間隔でタッチを探します。手を速く動かすと、タッチポイントが少なくなる可能性が非常に高くなります。したがって、線を使用してポイントを接続すると、醜いスパイクが発生します。

カーブフィッティングアルゴリズムによってカーブを滑らかにすることができますが、図面を微調整すると、品質が大幅に向上する可能性があります。これがその例です。

消しゴム制御

背景色がわかっている場合は、それをブラシの色として使用して、消しゴムのような感覚を与えることができます。背景がわからない場合は使用できます

CGContextSetBlendMode(context, kCGBlendModeClear);

元に戻す/やり直し

NSUndoManagerを使用できます。

于 2012-04-09T12:02:52.903 に答える