0

以下のコードを使用してポリゴンを描画しています。私が得る画像は以下の通りです:

ここに画像の説明を入力してください

正方形を描くために使用しているコードは次のとおりです。

CGContextRef currentContext = UIGraphicsGetCurrentContext();
[topLeftBoxBorderColor set];
CGContextSetLineWidth(currentContext, 1.0f);
CGContextSetLineJoin(currentContext,kCGLineJoinMiter);
CGContextMoveToPoint(currentContext, originXOfSubviews, originYOfSubviews);
CGContextAddLineToPoint(currentContext, originXOfSubviews+widthOfBox, originYOfSubviews);
CGContextAddLineToPoint(currentContext, originXOfSubviews+widthOfBox, originYOfSubviews+heightOfBox);
CGContextAddLineToPoint(currentContext, originXOfSubviews, originYOfSubviews+heightOfBox);
CGContextAddLineToPoint(currentContext, originXOfSubviews, originYOfSubviews);
CGContextStrokePath(currentContext);

四隅の2本の線の交点に白い点があります。この点を避ける方法はありますか?

更新1:

私は以下の解決策を知っています:線の幅に基づいて、線の始点を変更して、私が期待するものを達成することができます。しかし、他の解決策はありますか?

更新2:

以下のコードを使用してポリゴンを描画しています

lineWidthを1以下に設定すると、同じ問題が発生します。2以上に設定しても問題ありません。

CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context, 2.0);

    CGContextSetStrokeColorWithColor(context, topLeftBoxBorderColor.CGColor);

    CGRect rectangle = CGRectMake(originXOfSubviews,originYOfSubviews,widthOfBox,heightOfBox);

    CGContextAddRect(context, rectangle);

    CGContextStrokePath(context);
4

1 に答える 1

2

これは、両方の線(水平線と垂直線)の交点です。

あなたができることは、この線を現在使用している合計の長さよりも数ピクセル/ポイント短くすることです。それは交差せず、ドットは来ません。

編集:

または、線を引く代わりに正方形を描くことができます

- (void)drawSquare:(CGRect)rect{
    //Get the CGContext from this view
    CGContextRef context = UIGraphicsGetCurrentContext();
    //Draw a rectangle
    CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
    //Define a rectangle
    CGContextAddRect(context, rect);
    //Draw it
    CGContextFillPath(context); 
}
于 2012-12-03T09:48:41.880 に答える