Ellipsen zeichnen

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

ComNik

Betreff: Ellipsen zeichnen

BeitragDo, Jul 23, 2009 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Nochmal moin,
ich weiss die funktion gibt es schon im allseits geliebten BlitzMax aber fragt coolo wofür er sie braucht.
Na ja da mein chat client nichts mehr senden will und vielleicht mal jemand diese funktion oder den zugrundeliegenden algorithmus braucht, stelle ich sie ins codearchiv.

Ich stehe ziemlich unter zeitdruck im moment, daher ist die funktion noch nicht optimal glaube ich...
BlitzMax: [AUSKLAPPEN]

Function DrawEllipsis( posx:Float, posy:Float, width:Float, height:Float)
Local x:Float
Local y:Float
Local rx:Float = width / 2
Local ry:Float = height / 2

Local r:Int = Abs(rx) + Abs(ry)

x = 0
y = r

Local d:Int
Local ddf_x:Int
Local ddf_y:Int

d = 1 - r
ddf_x = 3
ddf_y = -2 * r + 5

While y >= x And r

Plot( posx + x * rx/r, posy + y * ry/r )
Plot( posx + y * rx/r, posy + x * ry/r )
Plot( posx + y * rx/r, posy - x * ry/r )
Plot( posx + x * rx/r, posy - y * ry/r )
Plot( posx - x * rx/r, posy - y * ry/r )
Plot( posx - y * rx/r, posy - x * ry/r )
Plot( posx - y * rx/r, posy + x * ry/r )
Plot( posx - x * rx/r, posy + y * ry/r )

If d < 0
d:+ ddf_x
ddf_x:+ 2
ddf_y:+ 2
x:+ 1
Else
d:+ ddf_y
ddf_x:+ 2
ddf_y:+ 4
x:+ 1
y:- 1
EndIf

Wend
End Function


lg
ComNik

ps: Feedback könnt ihr euch eigentlich sparen is ja nix besonderes dabei...
WIP: Vorx.Engine

hazumu-kun

BeitragDo, Jul 23, 2009 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
HUAR!!

Plot für das Zeichnen einer Ellipse zu benutzen ist TODSÜNDE.
Und außerdem ist der Code schlecht eingerückt.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

ComNik

BeitragDo, Jul 23, 2009 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein lieber viken,
wie ich in meinem post schon schrieb stehe ich ziemlich unter zeitdruck, die funktion ist eigentlich nur für coolo bestimmt, wenn jemand diesen algorithmus benutzen sollen wollte, kann er sich ja wohl die mühe machen, und seine zeichenroutine schreiben Rolling Eyes

mfg
ComNik
WIP: Vorx.Engine

DaysShadow

BeitragDo, Jul 23, 2009 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach dich mit Pixmaps vertraut und zeichne in eine solche deine Ellipse Wink
Hab ich bei meinem HSL-Kreis schon erfolgreich getan, musste mich auch erst mit den Pixmaps vertraut machen, ist aber an sich keine so große Sache.

Edit: Ahaaa, solltest du aber trotzdem mal auf die Idee kommen, dann weißt du Bescheid Wink

MfG DaysShadow
Blessed is the mind too small for doubt

coolo

BeitragDo, Jul 23, 2009 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke nochmal ComNik Wink

Der Vorteil dieser Funktion ist außerdem, dass man so ziemlich leicht leere Ellipsen zeichnen kann, also wie in BB.

Viken_emesh: Wenn du das unbedingt in eine Pixmap haben willst, schreibs doch selber ein, das ist doch nicht schwer einfach Plot ersetzen.
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group