画三角iphone

时间:2010-04-05 10:32:16

标签: iphone

我如何在iphone中绘制三角形.....这有什么api吗?你可以发布一些代码......

3 个答案:

答案 0 :(得分:6)

您应该查看Apple文档中的QuartzDemo,其中包含大量图纸示例。

使用此演示,您可以在Polygon演示中将de star(6条边)更改为三角形(3条边)。只需更改QuartzPolygons.m循环中的增量数,只需注释“//将星形添加到当前路径”。例如,这是等边三角形的代码:

-(void)drawInContext:(CGContextRef)context
{
    // Drawing with a white stroke color
    CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
    // Drawing with a blue fill color
    CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
    // Draw them with a 2.0 stroke width so they are a bit more visible.
    CGContextSetLineWidth(context, 2.0);

    CGPoint center;

    // Add a triangle to the current path
    center = CGPointMake(90.0, 90.0);
    CGContextMoveToPoint(context, center.x, center.y + 60.0);
    for(int i = 1; i < 3; ++i)
    {
        CGFloat x = 60.0 * sinf(i * 4.0 * M_PI / 3.0);
        CGFloat y = 60.0 * cosf(i * 4.0 * M_PI / 3.0);
        CGContextAddLineToPoint(context, center.x + x, center.y + y);
    }
    // And close the subpath.
    CGContextClosePath(context);

    // Now draw the triangle with the current drawing mode.
    CGContextDrawPath(context, drawingMode);
}

答案 1 :(得分:3)

只画三行。对于三角形ABC,您需要绘制A-B,B-C和C-A行。

答案 2 :(得分:0)

你可以试试像

这样的东西
Vertex3D    vertex1 = Vertex3DMake(0.0, 0.0, -3.0);
    Vertex3D    vertex2 = Vertex3DMake(0.1, 0.1, -3.0);
    Vertex3D    vertex3 = Vertex3DMake(0.1, -0.1, -3.0);
        Triangle3D  triangle = Triangle3DMake(vertex1, vertex2, vertex3);
    glClearColor(0.4, 0.4, 0.4, 1.0);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glEnableClientState(GL_VERTEX_ARRAY);
        glColor4f(1.0, 0.0, 0.0, 1.0);
        glVertexPointer(3, GL_FLOAT, 0, &triangle);
        glDrawArrays(GL_TRIANGLES, 0, 9);

但在此之前你需要启动OpenGL