PDA

View Full Version : Bresham Algorithmus -> Polygon Problem


TrabiGo
13-10-2002, 16:00
Hi @ all,

Kurzgesagt bei mir funktioniert das Polygon nicht um genauer zu sein die Linie über 45Grad d.h. die linie rechts und links.
Und beim Rechteck passen sich die senkrechten linien nicht genau an die horizonalen linien an,d.h sie sind leicht verschoben.


Ich würde mich riesig freun wenn sich das mal jem. anschaun könnte und mir einen Lösungsansatz oder gleich die Lösung :D geben könnte *g*.

THX

MfG TrabiGo

MichiK
13-10-2002, 16:25
gleiches problem wie bei jemand anderem:
'm' muß eine fließkomma-zahl sein, kein integer !!!

TrabiGo
13-10-2002, 19:57
Danke :) Ich werd gleich mal schaun ...

MfG TrabiGo

TrabiGo
14-10-2002, 00:38
Also ich doch noch ein problem ... jetzt weiß ich zwar das m eine float sein muss .. hab ich auch umgeändert ... und dx und dy werden jetzt auch also float umgewandelt ...
in der schleife dann beim berechnen der position des punktes ... muss ja dann trotzdem immer höhre als eins und kleiner als eins rauskommen ....
also entweder hab ich das ganze falsch verstanden .. oder ich versteh das im mom nicht so ganz ....
ich würde mich über eine ausführlichere erklärung freun .. oder einen link zu einem post wo es ausführlich erklärt ist ...
es fehlt eigentlich nur das .. die testatoffs funktionieren .. die atoffs gehen alle ... nur das nicht ....

bitte .. danke :)

mfg TrabiGo

MichiK
14-10-2002, 15:49
es war nur das zu machen, um deinen source lauffähig zu machen:
m = ((float)dy / (float)dx);

TrabiGo
14-10-2002, 16:49
hab ich gemacht ... kommt das bei dir dann richtig raus ?
ich hab auch schon mal die klassen gelöscht und alles neu kompiliert ... da gings auch nicht ... also ... hmmm jetzt versteh ich nix mehr :(

danke für eure deine hilfe

mfg TrabiGo

splintah
14-10-2002, 18:34
fonzt bei mir auch

zumindest schaut es gut aus

TrabiGo
14-10-2002, 19:21
@masdah splintah

ich hab keine ahnung wieso es nicht geht ... ich hab das so wie oben erwähnt eingesetzt ... float m = 0 initialiesiert wenn ich das als int mach damit er rundet hätt ich mir nur so nebenbei gedacht .. funktioniert es nicht ...

das problem ist ja nur .. das beim rechteck die senkrechten linien ein wenig verschoben sind ...

na ja .. blad muss ich eh abgeben ... dann ist es ja egal ... aber punkte oder als richtig wird es schon gewertet werden hoffe ich ... das is ja nur ein kleiner fehler eigentlich ...

mfg TrabiGo

dose
15-10-2002, 06:31
Nur mal so rein interessehalber...wieso nehmt ihr Floats ? Es wurde doch erwähnt, daß ein Vorteil vom Bresenham is, daß er nur mit Integer arbeitet...

tschurlo
15-10-2002, 10:57
Na, wahrscheinlich deshalb, wenn man |m| ausrechnet, was eine Division zweier Integer ist, eine Kommazahl rauskommen kann.
Im eigentlichen Algo sind eh nur Integer.

lg

dose
15-10-2002, 14:37
Hm, ich hab |m| net ausgerechnet, is glaub ich unnötig, ein einfacher Vergleich dy > dx tuts auch...