2012-02-19 4 views
0

[OK]をどこにも見つかりませんでした。ピクセルあたりのコアグラフィックを描画したい場合はどうすればよいですか?私はピクセル(45,61)とポイント(23,31)などに描画する代わりに(46,63)に線を描画したい。だから私はこの場合何をすべきか?ポイントの代わりにコアグラフィックスをドラッグする

CGContextAddLineToPoint(context,22.5,30.5); 
CGContextAddLineToPoint(context,23,31.5); 

または一部のより良い方法があります:

は、私のようなものを使用する必要がありますか?

私はおよそcontentScaleFactorを知っているが(例えば、ためのいくつかの機能をプロットするとき)私のようにそれを使用する必要があります。

for(int x=bounds.origin.x; x<=bounds.origin.x+bounds.size.width*[self contentScaleFactor]; i++) 
    CGContextAddLineToPoint(context,x/[self contentScaleFactor],y(x/[self contentScaleFactor])); 

私は例のコードは素晴らしいではないことを知っているが、私はあなたが得ると思いますアイディア。

私はこのすべてと少し混乱しているので、私は助けに感謝するでしょうスケールファクタもの。

答えて

1

あなたはiOS uTunesスタンフォードコースからAssignment3をやっているようですね。 :)
私は私の実装は非常に似ていますように、あなたは正しい軌道に乗っていると思う:

for(int x=self.bounds.origin.x; x<=self.bounds.origin.x + (self.bounds.size.width * self.contentScaleFactor); x++) { 
    // get the scaled X Value to ask dataSource 
    CGFloat axeX = (x/self.contentScaleFactor - self.origin.x)/self.scale; 

    // using axeX here for testing, which draws a x=y graph 
    // replace axeX with the dataSource Y-Point calculation 
    CGFloat axeY = -1 * ((axeX * self.scale) + self.origin.y); 

    if (x == self.bounds.origin.x) { 
     CGContextMoveToPoint(context, x/self.contentScaleFactor, axeY); 
    } else { 
     CGContextAddLineToPoint(context, x/self.contentScaleFactor, axeY);   
    } 
} 


は、IOS-SimのiPhone4の(contentScaleFactor 1.0)+ iPhone4Sのデバイス(contentScaleFactor 2.0)でテスト。
私はまだ学んでいるので、他の読者からの改善の可能性についてはうれしいです。

+0

私は全く同じ解決策を持っています。最初のxの処理を受け入れます(しかし、それはscalfactorのものには影響しません:)) – Uko

関連する問題