練習のために、Quartz2Dを使用して単純な定規の線を描きたいと思います。
iPhoneでプログラムでベクターグラフィックスを実行することについて私は知らないので、誰かが私に始めるための良いチュートリアルを教えてくれるかもしれませんか?
練習のために、Quartz2Dを使用して単純な定規の線を描きたいと思います。
iPhoneでプログラムでベクターグラフィックスを実行することについて私は知らないので、誰かが私に始めるための良いチュートリアルを教えてくれるかもしれませんか?
Plamenが指摘しているように、Quartz2Dのドキュメントは読む価値があります。さらに、コースノートは私のiPhone開発コースでオンライン(VoodooPad形式)で入手できます。このコースでは、クラス全体をQuartz2D描画に専念しています。私が作成したQuartzExamplesサンプルアプリケーションは、いくつかのより高度な描画の概念を示していますが、AppleのQuartzDemoサンプルは、簡単な描画を行う方法を確認するためのより良い場所です。
定規の目盛りを描画する例として、以下は私が同様のことを行うために使用したコードです。
NSInteger minorTickCounter = majorTickInterval;
NSInteger totalNumberOfTicks = totalTravelRangeInMicrons / minorTickSpacingInMicrons;
CGFloat minorTickSpacingInPixels = currentHeight / (CGFloat)totalNumberOfTicks;
CGContextSetStrokeColorWithColor(context, [MyView blackColor]);
for (NSInteger currentTickNumber = 0; currentTickNumber < totalNumberOfTicks; currentTickNumber++)
{
CGContextMoveToPoint(context, leftEdgeForTicks + 0.5, round(currentTickNumber * minorTickSpacingInPixels) + 0.5);
minorTickCounter++;
if (minorTickCounter >= majorTickInterval)
{
CGContextAddLineToPoint(context, round(leftEdgeForTicks + majorTickLength) + 0.5, round(currentTickNumber * minorTickSpacingInPixels) + 0.5);
minorTickCounter = 0;
}
else
{
CGContextAddLineToPoint(context, round(leftEdgeForTicks + minorTickLength) + 0.5, round(currentTickNumber * minorTickSpacingInPixels) + 0.5);
}
}
CGContextStrokePath(context);
ここcurrentHeight
で、はカバーする領域の高さであり、[MyView blackColor]
黒を表すCGColorRefを返すだけです。