現在、私は UIBezierPath を使用しており、moveToPoint
/addLineToPoint
ビューのdrawRect
. この同じビューはtouchesMoved
、viewController から受け取ります。次のように、ポリゴンを描画するときに使用される変数posx
と変数を変更します。posy
[path addLineToPoint:CGPointMake([p.getx floatValue]+posx, [p.gety floatValue]+posy)]
残念ながら、パフォーマンスはひどいもので、ポリゴンを動かすたびに軌跡が残ります。
私がやろうとしていることを達成するための最良の方法は何ですか?
編集: drawRect。polys
オブジェクトを持つ NSMutableArraypoly
です。各ポリゴンは 1 つの x/y ポイントです。
- (void)drawRect:(CGRect)rect{
UIBezierPath* path;
UIColor* fillColor;
path = [UIBezierPath bezierPath];
for (int i = 0; i < [polys count]; i++){
poly *p = [polys objectAtIndex:i];
if (i == 0){
[path moveToPoint:CGPointMake([p.getx floatValue]+posx, [p.gety floatValue]+posy)];
}else{
[path addLineToPoint:CGPointMake([p.getx floatValue]+posx, [p.gety floatValue]+posy)];
fillColor = [UIColor blueColor]; // plan to use a random color here
}
}
[path closePath];
[fillColor setFill];
[path fill];
}