web-dev-qa-db-ja.com

プログラムで三角形を描く方法

三角形ソルバーがあります。答えから得た値を使用して、それに一致する三角形を画面に描画する方法が必要です。

30
user804306

UIViewをサブクラス化する場合、drawRectに次のようなものを実装して三角形を描画できます。

-(void)drawRect:(CGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();

    CGContextBeginPath(ctx);
    CGContextMoveToPoint   (ctx, CGRectGetMinX(rect), CGRectGetMinY(rect));  // top left
    CGContextAddLineToPoint(ctx, CGRectGetMaxX(rect), CGRectGetMidY(rect));  // mid right
    CGContextAddLineToPoint(ctx, CGRectGetMinX(rect), CGRectGetMaxY(rect));  // bottom left
    CGContextClosePath(ctx);

    CGContextSetRGBFillColor(ctx, 1, 1, 0, 1);
    CGContextFillPath(ctx);
}
84
progrmr

Swiftprogrmrの回答と同等:

override func draw(_ rect: CGRect) {

    guard let context = UIGraphicsGetCurrentContext() else { return }

    context.beginPath()
    context.move(to: CGPoint(x: rect.minX, y: rect.minY))
    context.addLine(to: CGPoint(x: rect.maxX, y: rect.midY))
    context.addLine(to: CGPoint(x: (rect.minX), y: rect.maxY))
    context.closePath()

    context.setFillColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
    context.fillPath()
}
1
Santosh