Zeichnen Sie ein Kreis-segment
Frage ich mich, ob jemand hier kann mir helfen, mit einigen pseudocode oder zumindest zeigen mich in die richtige Richtung, wie zeichnen Sie ein Kreis-segment ohne anti-aliasing.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Formel für die Punkte auf einem Kreis sind:
wo
xcenter
undycenter
sind die Mitte des Kreises,radius
ist der radius und dietheta
ist der Winkel.Du musst einfach Durchlaufen
theta
von Ihr ab Winkel zu dem End-Winkel in genügend kleine Schritte, und extrahieren Sie diex
undy
Werte für das zeichnen, und im Kopf behalten, dass die meisten trigonometrischen Funktionen erwarten Ihre Argumente als Bogenmaß (0 bis 2*PI) anstatt Grad (0 bis 360) - passen Sie Ihre start-und end-Winkel und Ihretheta
Schritt, um dies zu berücksichtigen.Pseudo-code wäre so etwas wie die folgenden:
zwar würden Sie wahrscheinlich wollen zu normalisieren, die Winkel werden zwischen 0 und 2*PI, und dann tauschen Sie die start-und end-Winkel, wenn die erstere größer als die letztere.
Wenn du mehr willst effizienten code, können Sie den Blick in die midpoint circle Algorithmus. Die Mathematik ist schwerer und es ist etwas komplizierter durch die Anforderung, dass Sie nur ein segment (das heißt, Sie werden brauchen zu wissen, der Winkel, der etwas in der Regel nicht notwendig, für die dieser Algorithmus mit einem Kreis) aber das wäre ein guter Ausgangspunkt, wenn Sie die vereinfachte obige Algorithmus ist nicht schnell genug.
plot(int(x),int(y))
Für integer-Kreis-Zeichnung, siehe wikipedia midpoint circle Algorithmus Artikel. Es zeigt, mit code, eine Art von Kreis-Variante des Bresenham ' s line algorithm. Sehen codecircle für Vergleiche (mit codes) der midpoint circle Algorithmus Bresenham-Kreis-Algorithmus und eine optimierte Dritte Methode.