Entwickler-Ecke

Multimedia / Grafik - Gleitkommazahlen beim zeichnen


lachgas - Di 20.01.09 15:10
Titel: Gleitkommazahlen beim zeichnen
hallo.
ich wollte mal fragen, ob jemand von euch weiß, ob ich in delphi auf mit gleitkommazahlen zeichnen kann. also bei canvas geht es ja nur mit integerwerten. gibt es da noch was ähnliches, wo man auch mit kommazahlen rechnen kann?
mfg


Marc. - Di 20.01.09 15:13

Wie stellst du dir das denn vor? Halbe Pixel? :shock:
Runden, die Nachkommastellen abschneiden (Trunc/Div) wäre eine Alternative.
Man könnte aber auch die Zahlen soweit erweitern, dass erst gar keine Nachkommastellen mehr auftreten.


Gausi - Di 20.01.09 15:14

Gegenfrage: Was bringt es, eine Linie von Pixel (122.3123332 / 4.342323) zu (987.736363727 / 763.973738) zu zeichnen?

Wenn du sowas benötigst, musst du die Objekte im Hintergrund passend verwalten - die Ausgabe auf dem Canvas passiert dann gerundet.


lachgas - Di 20.01.09 18:33

also das mit dem erweitern und so, dass wäre schon ne möglichkeit, aber da habe ich angst, dass das zu groß wird, oder gibt es ne möglichkeit die pixelanzahl von einer form zuerhöhen???
der grund, warum ich das möglichst so genau wie möglich brauche ist, dass ich von einer kreisbewegung, die ich über die pfeiltaste hoch und runter mache, über eine tangente dann halt gerade weiter gesteuern will.


jfheins - Di 20.01.09 19:12

Wie gesagt, rechne mit Gleitkommazahlen und runde bei der Anzeige ;)

Oder wenn du das gerne möchtest, schreibe Canvas so um, dass es mit Anti-aliasing auch Kommawerte verarbeiten kann ;)


lachgas - Di 20.01.09 19:46

okay...ich versuchs XD
was bedeutet, bzw. was ist ein Anti-aliasing?


nagel - Di 20.01.09 23:10

Zum Thema Anti-Aliasing:
http://de.wikipedia.org/wiki/Antialiasing_(Computergrafik)

Und zu deiner Frage:
http://www.vclcomponents.com/Delphi/Image_Processing/GDIPLUS-info.html
Damit sollte es gehen.