2010年3月17日水曜日

iPhoneアプリでCGContextを使って円の線と中身を描画するには?

慣れていない言語だと円の線や円の中身を描画するだけでも、やおいかんものよのぉ。

例えばViewの中心に赤い半透明(10%)の円の中身を描画し、その上に赤い円の線を半透明(50%)で描画するには、こうする。

- (void)drawRect:(CGRect)_rect {

 //現在のコンテクストを取得
 CGContextRef context = UIGraphicsGetCurrentContext();
 
 //描画の中心点
 float cx = self.bounds.size.width/2;
 float cy = self.bounds.size.height/2;
 NSLog(@"drawRect() 描画中心点 cx=%f cy=%f", cx, cy);

 //円の半径
 float R = 30.0;

 //円の範囲
 CGRect rectEllipse = CGRectMake(cx - R, cy - R, R*2, R*2);

 //円の中身を描画
 CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 0.1);
 CGContextFillEllipseInRect(context, rectEllipse);

 //円の線を描画
 CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 0.5);
 CGContextSetLineWidth(context, 2.0);
 CGContextStrokeEllipseInRect(context, rectEllipse);

}


百里の道も一歩から。かつてKREVA氏も言った。「まずは手近なとこから取りかかれ〜」