How to draw a triangle programmatically

前端 未结 3 1111
长情又很酷
长情又很酷 2020-12-13 04:43

I have a triangle solver, I want a way to use the values I get from the answer to draw a triangle to the screen that matches it.

相关标签:
3条回答
  • 2020-12-13 04:44

    Swift 3 equivalent for progrmr's answer:

    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()
    }
    
    0 讨论(0)
  • 2020-12-13 04:45

    If you subclass a UIView you can implement something like this in drawRect to draw a triangle:

    -(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);
    }
    
    0 讨论(0)
  • 2020-12-13 04:59
    - (void)drawRect:(CGRect)rect {
    
    
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        CGContextClearRect(ctx, rect);
    
        // Draw a triangle
        CGContextSetRGBFillColor(ctx, 255, 160, 122, 1);
    
        CGContextBeginPath(ctx);
        CGContextMoveToPoint   (ctx, 290, 35);  // top
        CGContextAddLineToPoint(ctx, 350, 165);  // right
        CGContextAddLineToPoint(ctx, 230,165);  // left
        CGContextClosePath(ctx);
    
        CGContextSetRGBFillColor(ctx, 1, 1, 1, 1);
        CGContextFillPath(ctx);
    }
    
    0 讨论(0)
提交回复
热议问题