Fehler in FF_Line() ?

  • Ersteller Ersteller Lui
  • Erstellt am Erstellt am

Lui

Mitglied
Registriert
20.12.04
Beiträge
152
Ort
Oberstocken CH
Trophäen
!
Wenn ich mit FF_Line eine Linie zeichne wird diese nicht bis an den Bildrand geführt. Siehe ganz rechts unten:

testline.JPG

Das Bild habe ich mit folgendem Testscript erstellt:
Code:
call FF_Line(0,0,FF_GetImageWidth,FF_GetImageHeight,255,100)
call FF_reload

Selbst wenn die Werte für den Endpunkt erhöht werden (auch über den Bildrand), wird die Linie nicht bis an den Rand gezogen. Rundungsfehlen? Komprimierungsfehler? Überlegungsfehler?

Gruss Lui
 
AW: Fehler in FF_Line() ?

Wenn die Basis 0 ist müsste es etwas so lauten:
Code:
FF_Line 0, 0, FF_GetImageWidth() - 1, FF_GetImageHeight() - 1, 255, 100

Ansonsten kann ich dazu nichts sagen, da nicht selbst probiert. Wenn's so ist, wahrscheinlich ein Bound-Problem beim Zeichnen. D. h. das verfügbare Zeichenfenster ist um 1 Pixel zu klein. Kann Joachim sicherlich korrigieren, auch wenn mir nicht bekannt wird, ob er mit Windows-Funktionen (DIB=Device Independent Bitmap) oder mit eigenen, privaten Funktionen in die Bilddaten schreibt.
 
AW: Fehler in FF_Line() ?

W.P. schrieb:
Wenn die Basis 0 ist müsste es etwas so lauten:
Funktioniert leider auch nicht. selbst bei
Code:
call FF_Line(5,5,FF_GetImageWidth-5,FF_GetImageHeight-5,255,100)
müsste die Linie bei einer Breite von 100 bis an den Rand kommen (was oben links auch klappt).


W.P. schrieb:
Wenn's so ist, wahrscheinlich ein Bound-Problem beim Zeichnen. D. h. das verfügbare Zeichenfenster ist um 1 Pixel zu klein.
Das dachte ich zuerst auch, interessanterweise sind aber einzelne Pixel in der rechtesten reihe rot gefärbt, bei Deiner Annahme müsste die Kante scharf sein.
Da der Fehler auch bei Horizontaler Linie auftaucht kann es auch nicht ein Fehler beim Diagonal zeichnen sein (Treppe).

Gruss Lui
 
AW: Fehler in FF_Line() ?

weiterer Test:

testlinie2.JPG

call FF_Line(5,5,FF_GetImageWidth-5,FF_GetImageHeight-5,255,100)
call FF_Line(5,100,FF_GetImageWidth-5,100,256*255,100)
call FF_Line(0,300,FF_GetImageWidth,300,256*256*255,1)

die 1Pixel Linie kann auch länger oder kürzer gezeichnet werden, Sie erreicht den rechten Rand nie.

Gruss Lui
 
AW: Fehler in FF_Line() ?

Bei der grünen Linie sehe ich auch links unten einen Fehler, sowie rechts unten. Hier fehlt ein Stück. Das scheint rechts oben angehängt zu sein. Vermute mal, dass unten rechts die Rundung des Pinsels angeht. Ebenso vorne links unten.

Wenn Du die Rote Linie bis zum Rand gehen läßt(-50) ist der letzte Pixel genau am Rand. Sobal das Clipping des Pinsels einsetzt gibt es Probleme. Bei Werte um -49 - 0 sieht man, dass der Rahmen der Linie stimmt. Jedoch gibt es beim Füllen der Linie Probleme. (Rote Linie)
 
Zurück
Oben