2017-05-11 5 views
0

Ich interessiere mich für das Zeichnen eines Kreises mit variablem Radius mit den Funktionen sin() und cos().Zeichnen eines Kreises mit cos() sin(), keine Wiederholung Pixel, keine Lücken?

Gibt es eine goldene Regel, um die Bogenmaße zu erhöhen, so dass es nicht mehrere Plots zum selben Ort und keine Lücken im Kreis gibt, der auf einer pixelbasierten Anzeige gezeichnet wird?

Meine Vermutung wäre, dass s etwas damit zu tun hat, 2 × PI durch die aus dem Radius abgeleitete Zahl zu teilen?

Ich bin mir sicher, dass dies entweder sehr einfach oder aufgrund der Einschränkungen der Gleitkommaberechnungen unmöglich ist.

Vielen Dank für Ihre Zeit

Anthony

+0

Wenn Sie die Zielauflösung wissen, es besser ist, zwei Werte von y für jedes x zu berechnen: 'y = + -sqrt (r * r - x * x) ' – martin

Antwort

0

Die Länge des Bogens ist einfach s = r * delta_fi wo r der Radius des Kreises ist, fi der Winkel und delta_fi ist die Änderung des Winkels.

Die Projektion dieses Bogens zu der X-Achse delta_x = s * sin(fi) und y-Achsen es delta_y = s * cos(fi)

Sie wollen solche delta_fi darüber, daß jede delta_x oder delta_y 1.

Offensichtlich ist, das Problem ist symmetrisch und Wir können es für fi von -45 ° bis 45 ° und für delta y lösen und dann die gleiche Lösung in anderen Quadranten anwenden. Wir haben:

r * delta_fi * cos(fi) = 1

Daraus folgt:

delta_fi = 1/cos(fi)/r

Verwandte Themen