start-und end-Winkel von UIBezierPath?
Habe ich codiert, wie unten für einen halben Kreis in iOS mit UIBezierPath und CAShapeLayer.
clockWiseLayer = [[CAShapeLayer alloc] init];
CGFloat startAngle = -M_PI_2;
CGFloat endAngle = M_PI + M_PI_2;
CGFloat width = CGRectGetWidth(imageView.frame)/2.0f + 30;
CGFloat height = CGRectGetHeight(imageView.frame)/2.0f +50;
CGPoint centerPoint = CGPointMake(width, height);
float radius = CGRectGetWidth(imageView.frame)/2+10;
clockWiseLayer.path = [UIBezierPath bezierPathWithArcCenter:centerPoint
radius:radius
startAngle:startAngle
endAngle:endAngle
clockwise:YES].CGPath;
clockWiseLayer.fillColor = [UIColor clearColor].CGColor;
clockWiseLayer.strokeColor = [UIColor blueColor].CGColor;
clockWiseLayer.borderColor = [UIColor greenColor].CGColor;
clockWiseLayer.backgroundColor = [UIColor redColor].CGColor;
clockWiseLayer.strokeStart = 0.0f;
clockWiseLayer.strokeEnd = 0.5f;
clockWiseLayer.lineWidth = 2.0f;
clockWiseLayer.borderWidth = 5.0f;
clockWiseLayer.shouldRasterize = NO;
[self.layer addSublayer:clockWiseLayer];
Diese Ergebnisse wie unten.
Ich will diesen blauen Halbkreis auf der gegenüberliegenden Seite des Globus.
Es ist halb Kreis, aber ich will es auf der anderen Seite, auch gegen den Uhrzeigersinn.
Ich bin nicht in der Lage, um start-und end-Winkel für, dass, während im Uhrzeigersinn:KEINE.
Dank.
- Haben Sie versuchen, starten Sie einfach von M_PI_2 und Ende M_PI_2 + M_PI ?
- Ja, habe ich, keine Verwendung. kommt, nicht genau gegenüber.
- Was meinst du mit "ich bin nicht legen Sie start-und Endwinkel für, dass, während im Uhrzeigersinn:NEIN", bedeutet Es nicht, zeichnen Sie einen Halbkreis? Es stürzt ab? etwas anderes?
- Es ist nicht abstürzt, aber es zeigt nicht Ergebnis, wie ich erwarte. Wenn ich NEIN zu sagen, im Uhrzeigersinn, wird erstaunt sein (verbergen, anzeigen) in der gleichen start-und end-Winkel @Avt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dokumentation für die Koordinaten:
http://i.stack.imgur.com/1yJo6.png
Y-Achse ist Umgekehrt im Vergleich zu standard-Koordinatensystem in der Mathematik.
Zeichnen Sie aus 1/2*PI (Boden-Anker) 3/2*PI (oberster Anker) und dann setzen Sie strokeStart (0,0) f und strokeEnd 1.0 f (also es füllt den gesamten Pfad).
Funktionierenden code mit iOS Konstanten:
Beginnen Sie von oben auf den Kreis mit
-M_PI_2
und am EndeM_PI + M_PI_2
(wenn Sie möchte haben der Kreis und begrenzen es mitstrokeEnd
,strokeStart
). Dann stellen Sie den Kreis Pfad zu zeichnen, von der Hälfte das Ende des Weges (linke Seite des Bildes) statt von Anfang an die Hälfte (rechts im Bild)Spielte ich mit
bezierPathWithArcCenter
und es funktioniert ganz seltsam, wennclockwise = NO
. Aber wenn Sie möchten, erstellen Sie einen Kreis Bézier-Pfad mit conterclockwise Richtung, die Sie erstellen können, ein Pfad im Uhrzeigersinn und dann wieder mit bezierPathByReversingPath