www.mikrocontroller.net

Forum: PC-Programmierung Bilder auf den Schirm zaubern?


Autor: Pascal C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Pascal C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.. 
:-)

Autor: oha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: *.* (Gast)
Datum:

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

Autor: Gast (Gast)
Datum:

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

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.