3 Stimmen

Warum wird mein Core Graphics-Dreieck beim Zeichnen invertiert?

Ich verwende den folgenden Code und er zeichnet ein Dreieck auf dem Bildschirm. Aber aus irgendeinem Grund zeigt es das untenstehende Dreieck an.

Hier ist der Code:

// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code

    CGMutablePathRef path = CGPathCreateMutable(); 
    CGPathMoveToPoint(path,NULL,10.0f, 100.0f); 
    CGPathAddLineToPoint(path,NULL,100.0f,10.0f); 
    CGPathAddLineToPoint(path,NULL,100.0f,100.0f);
    CGPathAddLineToPoint(path,NULL,100.0f,100.0f);
    CGPathCloseSubpath(path); 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColorWithColor(ctx, [UIColor blueColor].CGColor); 
    CGContextAddPath(ctx, path); 
    CGContextFillPath(ctx); 

}

und hier ist das Ergebnis:

      /|
     / |
    /  |
   /   |
  /    |
 /__ __|

Aber wenn ich es auf Papier zeichne, komme ich zu diesem Diagramm:

   ___________
   \         | 
    \        | 
     \       |
      \      |
       \\     |
          \
            \|

(Sie verstehen schon, was ich meine)

Was verpasse ich nur! Vielleicht denke ich nicht richtig. x ist horizontal und y ist vertikal. (0,0) ist der Ursprung richtig.

2voto

Joshua Weinberg Punkte 28440

Die Y-Achse wird in dem Kontext, in den Sie zeichnen, gespiegelt. Sie können dies entweder in Ihren Berechnungen berücksichtigen oder eine affine Transformation anwenden, um sie zurückzudrehen

0voto

Eiko Punkte 25446

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X