Forum: PC-Programmierung Bilder auf den Schirm zaubern?


von Pascal C. (Gast)


Lesenswert?

Ich erinnere mich, dass ich von ca. 15 Jahren mal in Pascal unter DOS 
eine Uhr oder so in der Schule programmieren sollte, mit irgendwelchen 
Funktionen wie put_pixel() oder draw_line(). Das war tierisch langsam 
und ruckelig und ich war erstaunt wie ein Klassenkamerad ein vollständig 
animiertes Linienfahrrad hinbekommen hat.

Viele im Internet verbreitete technische Spielereien (led-matrix-touch) 
etc. haben zur Visualisierung gleich 3D Darstellungen mit OpenGL oder 
so.

Von der Software zum Bild ist es wohl ein weiter Weg über X Sub-Systeme.

Ich interessiere mich dafür, weil ich eine LED Matrix simulieren möchte 
aber nicht weiss, wie man sowas anstellen könnte. Ich weiss, dass 
GUI-Toolkits auch Grafikfunktionen für canvas-Elemente bereithalten, 
aber ob sowas schnell ist?

Ideal wär' eine Quelle die den Weg eines Bildes auf den Bildschirm 
erklärt und Tipps zum Programmieren gibt. Ist wohl der Inhalt von 
Büchern!?

von spess53 (Gast)


Lesenswert?

Hi

Welche Sprache/Programmierumgebung willst/musst/kannst du denn benutzen?
Wenn du mit Pascal Erfahrungen hast würde sich Delphi anbieten. Ist 
allerdings objectorientiert (ähnlich Turbo Vision bei Turbo Pascal).
Turbo Delphi gibt es kostenlos.

>Das war tierisch langsam und ruckelig...

Die Rechner sind in den letzten 15 jahren etwas schneller geworden.

>Ich weiss, dass GUI-Toolkits auch Grafikfunktionen für canvas-Elemente 
>bereithalten, aber ob sowas schnell ist?

Für deine Zwecke mit grosser Wahrscheinlichkeit schnell genug.

MfG Spess

von Pascal C. (Gast)


Lesenswert?

Hallo,

die Sprache ist mir fast egal - mit Python kann ich mich anfreunden weil 
es recht komfortabel ist. Aber eigentlich suche ich allgemeine 
Informationen, wie ich den Bildschirm unter meine Kontrolle bekomme.. 
:-)

von oha (Gast)


Lesenswert?

Den bildschirm gibt's eh nicht, aber ein window ist kein Problem. Eine 
Websprache wuerde ich allerdings nicht empfehlen, ausser du willst im 
Browser laufenlassen.

von *.* (Gast)


Lesenswert?

Damals musste man schon direkt auf den Videospeicher losgehen wenn es 
schnell werden sollte, also nicht über putpixel etc.

von Gast (Gast)


Lesenswert?

Mit Python könnte man etwas wie Pygame verwenden. Für C/C++ gibts dann 
noch Grafiklibs wie SDL oder SFML.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Unabhängig von der Programmiersprache, die Technik, die ruck- und 
flimmerfreie Grafiken auf den Bildschirm bringt, heisst "back plane 
drawing" bzw. "double buffering".

Das gibts mit Hardware-Unterstützung oder auch nur per Software. Der 
Trick ist, dass man in einen Bildspeicher (Hardware) oder einen 
Bildpuffer (Software) schreibt, der gerade nicht zu sehen ist.

Es gibt Grafikkarten, die haben so viel Speicher, dass mindestens zwei 
komplette Screens darin Platz haben. Während der eine Screen gerade 
angezeigt wird, wird in den anderen (gerade unsichtbaren) gezeichnet und 
dann per Hardware-Register getauscht - möglichst synchron zum 
Vertikalimpuls.

Das ganze geht bei schnellen Rechnern auch nur per Software, was 
einfacher ist, weil man in höheren Programmierspreachen ohnehin keinen 
Zugriff auf die Speicherbänke der Grafikkarte hat. Man legt intern ein 
Image-Objekt an und zeichnet dort hinein. Danach wird es per copy- oder 
imagedraw-Befehl (abhänig von Sprache) in den Context eines sichtbaren 
Canvas kopiert. Manche Programmiersprachen bzw. deren Compiler 
syncronisieren sowas von selber mit dem Vertikalimpuls (z.B. RealBasic).

Frank

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.