Über den Rand eines Images hinaus zeichnen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dibro
Beiträge: 143
Registriert: 11.03.2006 12:52
Computerausstattung: Win 10 64 bit
Wohnort: Solingen

Über den Rand eines Images hinaus zeichnen

Beitrag 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.
Gruß aus Solingen, PB 6.0 Win 10 Pro
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Bei Plot musst du teilweise drauf aufpassen. Desshalb verwende statt Plot eine Box mit Breite und Höhe von 1 Pixel.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
dibro
Beiträge: 143
Registriert: 11.03.2006 12:52
Computerausstattung: Win 10 64 bit
Wohnort: Solingen

Beitrag 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 :)
Gruß aus Solingen, PB 6.0 Win 10 Pro
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag 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).
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
dibro
Beiträge: 143
Registriert: 11.03.2006 12:52
Computerausstattung: Win 10 64 bit
Wohnort: Solingen

Beitrag von dibro »

Danke, gut zu wissen, kann ich mir die Arbeit ja sparen :allright:
Gruß aus Solingen, PB 6.0 Win 10 Pro
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag 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?
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Natürlich nicht. Es führt auf vielen Maschinen nicht mal zu nem fehler.

Sonst einfach nen Macro schrieben das es clipped.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

plot hat aber immer noh den vorteil das es wesentlich schneller ist als
box(..,..,1,1,...)
I´a dllfreak2001
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten