Autor Beitrag
Blackbird
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Fr 03.09.04 14:07 
Hallo alle zusammen...

Ich bin Moment dabei eine schnellere Zeichenoberfläche zu proggen, als das mit TImage geht.
Da bin ich jetzt beim Linienzeichnen hängengeblieben...

Nun der Algorithmus zum Zeichnen einer 1-Pixel Breiten Linie funktioniert soweit ganz gut.
Aber wie zeichne ich eine Linie, ide mehrere Pixel breit ist ? :?:

Googeln half mir hier net weiter... :(
Hat einer von euch zufällig ne Idee ??
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Fr 03.09.04 16:28 
Hasllo,

vorm linienzeichnen:
ausblenden Delphi-Quelltext
1:
canvas.pen.width:= ...					


Zitat:

Ich bin Moment dabei eine schnellere Zeichenoberfläche zu proggen, als das mit TImage geht.

timage butzt auch immer Tcanvas, daß mußt du genauer erläutern. Mit einer paintbox und einer Bitmap ist man miest eh schneller.

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Blackbird Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Fr 03.09.04 17:01 
loool 8)
Vielen Dank für deine Antwort erst mal...

Yo ich hatte meine Problem wohl net genung umschrieben...

Also, ich benutze erst mal gar keine PaintBox, Canvas oder sonst irgend etwas von der Windows GDI.
Ich benutze einfach einen 2 Dimensionalen Array aus Pixeln(Farbwerten).

Alle Zeichenfunktionen (lineto, rechteck, Ellipse etc.) werden zuerst in diesen Array gezeichnet und erst dann wird das gesamte Bild per Scanline auf ein Canvas Object übertragen.

Das geht wesentlich (!) schneller als irgend eine Compo zu nehmen.

Das heisst aber auch für mich, dass ich eben alle diese Zeichenfunktionen selbst Coden muss. Genau da bin ich eben beim Zeichnen von Linien die breiter als ein Pixel (!) sind hängengeblieben... :(

Thomas
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Fr 03.09.04 17:07 
Blackbird hat folgendes geschrieben:

Alle Zeichenfunktionen (lineto, rechteck, Ellipse etc.) werden zuerst in diesen Array gezeichnet und erst dann wird das gesamte Bild per Scanline auf ein Canvas Object übertragen.

worauf stützen sich deine erkenntnisse, das das schneller ist, wenn du das dann eh wieder auf ein canvas objekt übertägst?

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)