2010-04-05 4 views
1

Comment puis-je dessiner un triangle dans l'iphone ..... Y at-il des API pour cela? pouvez-vous poster du code ...Dessinez triangle iphone

+3

Salut dragon, je vois que vous avez posé beaucoup de questions mais rarement marqué les réponses acceptées. Ce serait une gentille politesse pour les utilisateurs qui vous ont aidé à revenir sur certaines de vos questions et à les marquer comme acceptées (appuyez sur le symbole «cocher» ou «cocher»). –

Répondre

3

Dessinez simplement trois lignes. Pour un triangle ABC, vous devez tracer les lignes A-B, B-C et C-A.

0

vous pouvez essayer quelque chose comme

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); 

mais avant cela, vous devez lancer OpenGL

6

Vous devriez jeter un oeil à QuartzDemo d'Apple Documentation, qui ont beaucoup d'exemples de dessins. En utilisant cette démo, vous pouvez changer d'étoile (6 arêtes) en triangle (3 arêtes) dans la démo Polygon. Il suffit de changer le nombre d'incrémentation dans la boucle de QuartzPolygons.m, juste en dessous du commentaire "// Ajouter une étoile au chemin courant". Par exemple, voici le code d'un triangle équilatéral:

-(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); 
}