2010-12-27 6 views
2

Was ist der beste Weg, einen Bogen nur mit x-y-Positionsbewegungen zu zeichnen? Nehmen wir zum Beispiel an, ich möchte einen Kreis mit dem Radius 4 an Punkt (4,4) zeichnen. Lassen Sie uns meine "Schublade" bei (4,0) und einer Auflösung von 0,1 Schritten in jeder Richtung sehen. Wie würde ich eine Sequenz von Bewegungen erstellen, um den Kreis zu vervollständigen?"Zeichnen" eines Bogens in diskreten x-y-Schritten

Wenn das nicht klar ist, kann ich versuchen, besser zu erklären.

Antwort

3

Wenn ich Ihre Frage richtig verstehe, suchen Sie nach Bresenham-Algorithmus. Sie können zum Beispiel here darüber lesen.

2

Sie möchten den Mittelpunkt-Kreis-Algorithmus, auch bekannt als Bresenham-Kreis-Algorithmus (obwohl Bresenham es nicht entwickelt hat). Wikipedia hat a reasonably good article darüber; Es gab auch a Python implementation auf dem LiteratePrograms Wiki (das nicht mehr ist - der Link ist zu der Wayback Machine) und several implementations auf Rosetta Code. Die Idee dahinter ist es, in einem Kreis zu laufen und nacheinander jede Koordinate aus der vorherigen zu berechnen (wodurch teurere mathematische Operationen vermieden werden). Sie bewegen sich immer in eine Richtung (sagen Sie "nach oben") und verwenden die berechnete Variable, um zu entscheiden, ob Sie drehen möchten oder nicht.

+0

Traurig LiteratePrograms ist nicht mehr :( –

+0

@MarkLawrence: Danke - Ich habe es auf eine Wayback Machine Link geschaltet. –