Kreissegment zeichnen

Gast #363744
Lesenswert?

Ich hab sowas recht aufwendig im Rahmen meiner Diplomarbeit gemacht.
Fertige Routinen oder Algorithmen, die wirklich beliebige Kreissegmente
zeichnen und auch füllen, habe ich leider nicht im Netz gefunden. Mein
Ansatz ist, mit Tabellen für den Kreisbogen und der Kreissekante zu
arbeiten. Dabei sind einige kniffelige Spezialfälle zu beachten.

Wenn man nicht füllen möchte, ist es zwar etwas einfacher, aber auch da
fand ich persönlich Tabellen recht flott und nützlich. Und man braucht
tatsächlich keinen Sinus und Cosinus dafür. Man rechne ein Achtel Kreis
nach Bresenham aus, spiegele diesen auf ein Viertel, beachte hierbei das
45° Problem, spiegele dieses Ganze auf die Hälfte und dann auf den
vollen Kreis. Das geht ziemlich schnell. Und die Sekanten-Schnittpunkte
kann man sich dann durch Umrechnung von 360° auf die Anzahl der
tatsächlichen Bogenpunkte leicht errechnen. Am Ende zeichnet man alle
Bogenpunkte des Segments von Start bis Ende und die dazugehörige
Sekante. Fertig.

Natürlich kann man jetzt einwenden, dass diese Vorgehensweise zuviel
Speicher verbraucht und recht unalgorithmisch ist, aber ich hatte an
meinen AT90CAN128 512KB SRAM extern drangepackt und diesen kaum
genutzt. In der Nachbetrachtung wäre es auch mit den internen 4KB
gegangen, aber meine Arbeit leistet ja noch einiges mehr.
Gast #363745
Lesenswert?

Zu Urzeiten der Homecomputer habe ich mal einen schnellen Algorithmus
gesehen, der das irgendwie mit komplexen Zahlen realisiert hat. Wenn
ich recht erinnere, entspricht eine Multiplikation mit einer bestimmten
komplexen Zahl (vom Betrag eins) einem Drehoperator um einen festen
Winkel. Kann man komponentenweise mit Festkomma ausrechnen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren