タッチ位置の周りを回る矩形
前回のタッチ位置に矩形を表示するサンプル(iOS)の続き。タッチ位置の周りを回る矩形を描画するサンプルです。時計回りに回転する矩形と、反時計回りに回る矩形の2つを表示しています。
前回のプログラムのdrawRect:のみの修正です。
- (void)drawRect:(CGRect)rect { const int size = 30; CGContextRef c = UIGraphicsGetCurrentContext(); CGContextSaveGState(c); // graphics state保存 CGContextTranslateCTM(c, _point.x, _point.y); CGContextRotateCTM(c, _angle*M_PI/180.0); CGContextTranslateCTM(c, -_point.x, -_point.y); CGContextSetFillColorWithColor(c, [UIColor blueColor].CGColor); CGRect r = CGRectMake(_point.x - (size/2.0), _point.y - (size/2.0), size, size); CGContextFillRect(c, r); CGContextSetFillColorWithColor(c, [UIColor redColor].CGColor); CGRect r2 = CGRectMake(_point.x + 30, _point.y - (size/2.0), size, size); CGContextFillRect(c, r2); CGContextRestoreGState(c); // graphics stateリストア CGContextTranslateCTM(c, _point.x, _point.y); CGContextRotateCTM(c, -_angle*M_PI/180.0); CGContextTranslateCTM(c, -_point.x, -_point.y); CGContextSetFillColorWithColor(c, [UIColor greenColor].CGColor); CGRect r3 = CGRectMake(_point.x + 70, _point.y - (size/2.0), size, size); CGContextFillRect(c, r3); }