Seite 1 von 1

Über den Rand eines Images hinaus zeichnen

Verfasst: 12.11.2006 09:16
von dibro
Hi,
ich will bei einem Diagramm, welches ich anschließend in einem Gadget darstelle die x-Achse vergrößern und auch verschieben.
Passiert da was, wenn ich über die feste Größe des Images hinauszeichne, z.B. Linie über den Rand hinaus.
Muss ich das abfangen oder macht PB das?
Ich hab das mal versucht, aber passiert ist nix, auch der Debugger meckert nicht.
Ich will nur vermeiden, dass ich mir irgendwann was im Speicher demoliere.

Verfasst: 12.11.2006 09:47
von DarkDragon
Bei Plot musst du teilweise drauf aufpassen. Desshalb verwende statt Plot eine Box mit Breite und Höhe von 1 Pixel.

Verfasst: 12.11.2006 11:09
von dibro
ich verwende vorwiegend linexy()

Code: Alles auswählen

LineXY(Xalt,YKLTemp_Alt,Xneu,YKLTemp_Neu,$FF0000)
Die Werte werden in einer Schleife erzeugt und die ..Alt-Werte jeweils gerettet.
Für Xalt und Xneu will ich jeweils den Maßstab und den Bereich verändern.
Da ich aber den aktuellen Bereich nicht kenne, weil er jeweils rechnerisch ermittelt wird, wäre es schon bequem, wenn PB die Begrenzung auf das vorgegebene Image für mich machen würde :)

Verfasst: 12.11.2006 11:19
von #NULL
außer mit plot kannst du zeichnen wo du willst. bei plot wird dir beim überschreiten der grenzen vom debugger ein invalid memory access ausgegeben. bei den anderen zeichen-routinen werden alle pixel gezeichnet, die im bild sind, alle anderen nicht (die werden clipped).

Verfasst: 12.11.2006 12:26
von dibro
Danke, gut zu wissen, kann ich mir die Arbeit ja sparen :allright:

Verfasst: 12.11.2006 14:32
von #NULL
aber weiß jemand ob das mit plot ohne den debugger zu schlimmerem als einem programmabsturz führen kann? z.b. beschädigung der hardware?

Verfasst: 12.11.2006 14:53
von Konne
Natürlich nicht. Es führt auf vielen Maschinen nicht mal zu nem fehler.

Sonst einfach nen Macro schrieben das es clipped.

Verfasst: 13.11.2006 10:09
von dllfreak2001
plot hat aber immer noh den vorteil das es wesentlich schneller ist als
box(..,..,1,1,...)

Verfasst: 13.11.2006 12:30
von Kaeru Gaman
aber direktes clippen würde diesen geschwindigkeitsvorteil wieder größtenteils zunichte machen.

besonders wenn man es als Macro implementieren wollte,
da dann das macro ja ebenfalls das ermitteln der maximalkoordinaten enthalten müsste.

sinnvoller wäre es dann, von vorne herein dafür zu sorgen,
dass an Plot keine anderen Parameter als die erlaubten übergeben werden.

im vorliegenden fall ist es ja kein problem:
Dibro will für den teil der berechnet wird, LineXY verwenden,
das wird automatisch geclippt, kann nix passieren.
nur wenn er irgendwelche gimmicks einbaun will, die plot benutzen, muss er halt aufpassen.