0

ボーダーで線を引きたいのですが、

今、私は同じことを2回行っています。つまり、最初にストローク+3で線を描き、1のような通常のストロークで線をもう一度描きます。

そのため、ループを2回実行します。

パフォーマンスを向上させる他の方法はありますか?または、2 つの線を同時に描画する別の方法.??

私のコードは

  if (locations && ([locations length]/16 > 1)) {       

                CGPoint point;
                polylinewidth=10;
                CGContextSetLineWidth(context, polylinewidth);
                CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);

                for (int i = 0; i <= locations.length - 32; i += 32) {
                    NSAutoreleasePool *loc = [[NSAutoreleasePool alloc]init];
                    CLLocationCoordinate2D coordinates;
                    coordinates.latitude = hexDecode_iPhone([locations substringWithRange:NSMakeRange(i, 16)]);
                    coordinates.longitude = hexDecode_iPhone([locations substringWithRange:NSMakeRange(i+16, 16)]);

                    point = [mapView convertCoordinate:coordinates toPointToView:self.mapView];

                    if (i == 0)
                        CGContextMoveToPoint(context, point.x, point.y);
                    else
                        CGContextAddLineToPoint(context, point.x, point.y);
                    [loc drain];
                }

                CGContextStrokePath(context);

                CGContextSetLineWidth(context, polylinewidth-5);

                CGContextSetAlpha(context, 0.6);

                CGContextSetStrokeColorWithColor(context, color.CGColor);

                for (int i = 0; i <= locations.length - 32; i += 32) {
                    NSAutoreleasePool *loc = [[NSAutoreleasePool alloc]init];
                    CLLocationCoordinate2D coordinates;
                    coordinates.latitude = hexDecode_iPhone([locations substringWithRange:NSMakeRange(i, 16)]);
                    coordinates.longitude = hexDecode_iPhone([locations substringWithRange:NSMakeRange(i+16, 16)]);

                    point = [mapView convertCoordinate:coordinates toPointToView:self.mapView];

                    if (i == 0)
                        CGContextMoveToPoint(context, point.x, point.y);
                    else
                        CGContextAddLineToPoint(context, point.x, point.y);
                    [loc drain];
                }

                CGContextStrokePath(context);  
            }

ありがとう。

4

0 に答える 0