Da ist die große Frage: was meinst Du mit Linux?
Im einfachsten Fall:
1
printf(".");
Dann ist ein Punkt in Deiner Konsole.
Aber Du willst wahrscheinlich Pixel malen, oder?
Dann ist die Frage: Ein embedded Linux mit einem Framebuffer oder doch
mit einem Windowmanager (aka Xorg oder Wayland/Weston) oder...
Martin H. schrieb:> Im einfachsten Fall:printf(".");
Du kennst seine verwendete Programmiersprache? Wo hast du deine
Glaskugel gekauft, so eine will ich auch :-)
>Im einfachsten Fall:>printf(".");
Ich hätte gerne ein Beispiel in C. Der Punkt soll farbig sein und an
jede beliebige Stelle des Bildschirms innerhalb eines Fenster gezeichnet
werden.
Marin H. schrieb
>Wenn mal vom (Noch-)Standard ausgeht, könnte man hier>https://en.wikipedia.org/wiki/Xlib anfangen zu lesen und sich dann hier
Danke.
Ich will nicht lesen.
Ich will ein Beispiel C-File und das passende Kommando zum compilieren
damit ich das ganze innerhalb von 3 Minuten testen kann.
StarLord schrieb:> Ich denke wir sollten den Thread hier abbrechen.
Wenn ein Problem nicht zu lösen ist, sollte man es auf jemand anderen
abwälzen.
@Markus:
Vergiss Linux, damit geht das nicht. Und die ganzen Linux-Fanbois hier
wollen das nur nicht wahrhaben und erzählen Müll.
Nimm Windows und stell deine Frage bei support.microsoft.de, da werden
Sie geholfen.
R. M. schrieb:> DrawPixel(screen,x,y,r,g,b);
Das ist doch genau was der TO wollte,
ein C Beispiel um einen Punkt(Pixel) auf den Bildschirm zu 'zeichnen'.
Warum die negative Beurteilung ?
Autor: HDA (Gast)
schrieb:
> ..
Danke für die Antwort.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <stdint.h>
4
5
voidgotoxy(intx,inty)
6
{
7
printf("%c[%d;%df",0x1B,y,x);
8
}
9
10
intmain(void)
11
{
12
puts("!!!Hello World!!!");/* prints !!!Hello World!!! */
13
gotoxy(10,10);
14
printf("...............");
15
16
returnEXIT_SUCCESS;
17
}
Es entspricht aber nicht ganz meinen Anforderungen:
>Ich hätte gerne ein Beispiel in C. Der Punkt soll farbig sein und an>jede beliebige Stelle des Bildschirms innerhalb eines Fenster gezeichnet>werden.
Markus schrieb:> Es entspricht aber nicht ganz meinen Anforderungen:>>Ich hätte gerne ein Beispiel in C. Der Punkt soll farbig sein und an>>jede beliebige Stelle des Bildschirms innerhalb eines Fenster gezeichnet>>werden.
Dann sende uns bitte ein vollständiges Lastenheft zu.
>R. M. schrieb:>> DrawPixel(screen,x,y,r,g,b);>Das ist doch genau was der TO wollte,
Nicht ganz:
>Ich will ein Beispiel C-File und das passende Kommando zum compilieren>damit ich das ganze innerhalb von 3 Minuten testen kann.
StarLord schrieb
>Dann sende uns bitte ein vollständiges Lastenheft zu.
Bitteschön:
1. Ich hätte gerne ein Beispiel in C. Der Punkt soll farbig sein und an
jede beliebige Stelle des Bildschirms innerhalb eines Fenster gezeichnet
werden.
2. Ich will ein Beispiel C-File und das passende Kommando zum
compilieren
damit ich das ganze innerhalb von 3 Minuten testen kann.
Markus schrieb:> StarLord schrieb>>Dann sende uns bitte ein vollständiges Lastenheft zu.>> Bitteschön:> 1. Ich hätte gerne ein Beispiel in C. Der Punkt soll farbig sein und an> jede beliebige Stelle des Bildschirms innerhalb eines Fenster gezeichnet> werden.> 2. Ich will ein Beispiel C-File und das passende Kommando zum> compilieren> damit ich das ganze innerhalb von 3 Minuten testen kann.
Welches Linux?
Wie groß soll der Punkt sein?
Welche Entwicklungsumgebung?
Soll es in exakt 3 Minuten zu testen sein oder geht es auch schneller?
Wie soll das Fenster aussehen? Konsole? GUI Container?
Welche Hardware ist vorhanden?
Welcher Compiler?
Wie dürfen die Ressourcen ausgeschöpft werden?
Soll der Punkt an einer festen Stelle bleiben oder vielleicht sogar mit
einem Cursor bewegt werden?
Welche Farben möchtest du alle haben?
...
Ach und wenn wir hier gerade dabei sind Wünsche zu äußern, dann will ich
nen Ferrari und ne Frau mit dicken Hupen.
Du willst...
Mal im Ernst...die Leute wollen dir hier helfen und du kommst nicht mit
infos rüber...kurz eine suchmaschine zu verwenden ist wohl auch zu
viel...
Aber zu deiner frage...unter linux nutzt man dazu blibliotheken. Es ist
auch ein unterschied ob du im vollbildmodus etwas zeichen willst oder in
einem fenster deines window-managers...und ab da wird es kompliziert da
es unter linux mehr als einen gibt.
Das einfachste wäre QT zu verwenden und sich da ein tutorial
durchzulesen. Da hier bibliotheken gelinkt werden müssen und wiederrum
von deinem linux abhängen solltest du bei deinem jetzigen Kenntnisstand
eine vollintegrierte IDE für QT verwenden (findest du auf deren
Webseite).
Letztendlich klickst du dann auf einen "play button" und dein fenster
wird geöffnet.
Auf der Seite http://www.bo8h.de kannst du ein
Emulationsprogramm für einen 8-bit-Computer
herunterladen, welches Grafik enthält. Das
Compilieren ist in der Datei Emul im Verzeichnis
info beschrieben. Du müsstest das Programm für
deine Zwecke allerdings gewaltig zusammenstreichen.
Aber du kannst es als Ausgangspunkt verwenden.
Markus schrieb:> Es entspricht aber nicht ganz meinen Anforderungen:
Den Beispielcode, wie man Zeichen auf der Konsole einfärbt, findest Du
unter meinem geposteten Link.
Ich will zum Mond fliegen. Zu den Kenntnissen des TO ist auch nix
bekannt.
Schade um die Manpower die hier verblasen wird. Und ich mach mir noch
die Mühe deinen Sch...zu lesen. So ein Mist.
Markus schrieb:> Es hat allerdings ein Problem: Von etwas 10 Startversuchen bleibt das> Fenster bei gefühlten 9 Versuchen leer. Woran könnte das liegen?
Weil der Ersteller des Programms die Eigenschaften von X auch nur halb
kapiert hat. Das Problem/der Vorteil ist, dass X ziemlich asynchron ist.
Insbesondere das Auftauchen des Fensters kann durch den Fenstermanager
ziemlich verzögert sein, sodass das Zeichnen in ein noch nicht
vorhandenes Fenster geht. Ohne Redraw-Event bleibts dann leer. Das hat
der Autor zwar durch das wahllose Verstreuen von XFlush bzw. XSync
versucht zu kompensieren, aber XFLush ist völlig überflüssig und XSync
hilft gerade beim Fenstermanager nix.
Bau mal um das XMapWindow herum folgendes ein:
Markus schrieb:> Marin H. schrieb>>Wenn mal vom (Noch-)Standard ausgeht, könnte man hier>>https://en.wikipedia.org/wiki/Xlib anfangen zu lesen und sich dann hier>> Danke.> Ich will nicht lesen.> Ich will ein Beispiel C-File und das passende Kommando zum compilieren> damit ich das ganze innerhalb von 3 Minuten testen kann.
Tja, wenn Du das denn mal gemacht hättest. Hinter dem Link "versteckt"
sich nämlich genau das - ein Beispiel-C-File mit dem passenden Kommando
zum kompilieren. Im Gegensatz zu Deinem selbst gefundenen Beispiel
kümmert sich dieses auch um Events und ist zudem deutlich kleiner...
R. M. schrieb:> SDL ist einfach zu erlernen und erlaubt z.B.> DrawPixel(screen,x,y,r,g,b);
Und hättest du nach SDL geg**gelt, dann wärst du sicher auf diesen Link
gestoßen:
https://www.libsdl.org/
Auch hier gibt es jede Menge Beispielcode.
Aber du bist nicht nur zum lesen zu faul, sondern auch zum Suchen.
Aber das machen sicher immer andere für dich.
StarLord schrieb:> Ach und wenn wir hier gerade dabei sind Wünsche zu äußern, dann will ich> nen Ferrari und ne Frau mit dicken Hupen.
Du bist ja voll 80er ;-)
Autor: Georg A. (georga) schrieb
>Bau mal um das XMapWindow herum folgendes ein:
Danke Georg, das war die Lösung :-)
Jetzt funktioniert das Demo.
Ich habe es mal angehängt.
Hier passende die Kommandozeile:
> gcc -o punkt punkt.c -L/usr/X11R6/lib -lX11> ./punkt
Danke auch den Leuten, die passende Links gepostet haben.
Ansonsten:
Es erstaunt mich immer wieder, wie groß die Klappe einiger und wie
gering die Kompetenzen dieser Leute sind.
Erstaunlich auch, wie schwer es den Leuten fällt, einfach auf den
"Punkt" zu kommen.
Und dann die Lehrer Typen:
>Das sind die besten Voraussetzungen etwas neues zu erlernen. ggg
graußig.
Markus schrieb:> Jetzt funktioniert das Demo.
Wobei diese Art der Nutzung aber nicht mehr so ganz der Stand der
Technik ist. X11 ist zwar eigentlich recht trivial und kann für sein
Alter (~1988, wie stands da gerade grafisch bei Microsoft...) verdammt
viel (google "window shape extension"...). Aber es ist halt schon eine
Art Grafikassembler, das ganze Eventhandling ist grosses Gefummel und
kann ziemlich ausarten. Und die damals vorhandenen Toolkits (Xt/Athena
Widgets oder Motif) waren und sind immer noch PITA.
So zum Verständnis ist rohe Xlib-Programmierung also ganz nett, aber mit
neuen Toolkits (SDL, GTK und insb. Qt) hat man deutlich mehr Freude und
heutige Systeme stören die paar MB an Libs auch nicht mehr...
Schon klar, dass das Ganze etwas veraltet ist. Ich brauche es aber für
einen bestimmten Zweck:
Da ich gerade für kleine Mikrocontroller eine TFT Lib entwickle, möchte
ich Screen-Shots machen. Mit der Kamera gibt es immer Spiegelungen.
Da ist es einfacher ich binde die Lib an X11 über das simplifizierte
Punkt-Interface.
Was natürlich eventuell auch noch nett wäre: den Zugriff auf die
Mauskoordinaten und deren Tasten.
Markus schrieb:> Da ich gerade für kleine Mikrocontroller eine TFT Lib entwickle, möchte> ich Screen-Shots machen. Mit der Kamera gibt es immer Spiegelungen.
Huch?
Also normalerweise benutzt man für sowas doch keine Kamera, sondern mach
das Ganze völlig anders:
1. Version: Du schreibst dir eine Programm für den PC, das in einem
Fenster den Bildbereich deines TFT nachbildet. Deine
Bibliotheksprogramme arbeiten dann beim Ausprobieren der Algorithmen auf
den Clientbereich eben dieses Fensters und später dann im µC auf den
Bildwiederholspeicher für das TFT.
Nun kannst du dir in deinem PC-Programm doch ganz einfach den Inhalt
eben dieses Fensters als Grafik abspeichern, BMP oder JPG oder was dein
System halt so hergibt. Bei blankem Linux, also Screen=Konsole sehe ich
da keine Chance, aber wenn du irgend ein Linux mit grafischer Oberfläche
benutzt, dann sollte für diese doch etwas benutzbar sein - oder? Unter
Windows hätte ich dir Delphi vorgeschlagen, für Linux dann eher Lazarus.
Dort gibt es Elemente, die einen skalierbaren Canvas beinhalten, wo man
nach Herzenslust drauf herummalen kann und man kann selbigen auch als
Grafik abspeichern. Das ist allemal besser als ein Bildschirmfoto.
2. Version: Du läßt das Ganze auf deinem µC laufen und verbindst ihn per
USB-CDC mit deinem PC und dort benutzt du das Terminalprogramm deiner
Wahl. Dann richtest du dir ein einfaches Kommandoprogramm auf deinem µC
ein, mit dem du den Bildschirm-Inhalt als Dump herunterladen kannst und
ann auf dem PC nach Belieben weiterverarbeiten kannst.
W.S.
So wie ich das verstehe, will er statt dem Abfotografieren des TFT das
Ergebnis der Lib in einem X-Fenster simulieren. Dann macht er ja genau
Punkt 1...
> Unter Windows hätte ich dir Delphi vorgeschlagen, für Linux dann> eher Lazarus.
Jetzt lass doch endlich mal das blöde Lazarus sterben. Er macht
offensichtlich alles in C und hat wohl auch keine Probleme damit, da
braucht er nicht noch eine zweite Sprache... Die XLib-Programmierung
geht in dem Fall schon (gibt halt Probleme mit den Redraws). Wenn mal
Zeit ist, wäre aber Qt eine Alternative.
Es ist immer wieder interessant zu sehen, dass viele einen sehr
schlechten Trollerkennsinn haben. Einige haben es ja bemerkt, aber
leider sehr viele nicht.
Es ist doch eindeutig, dass Markus zur Spezies der Trolle gehört.
Spätestens als er schrieb: "Ich will nicht lesen.
Ich will ein Beispiel C-File und das passende Kommando zum compilieren
damit ich das ganze innerhalb von 3 Minuten testen kann."
>Ich will nicht lesen.>Ich will ein Beispiel C-File und das passende Kommando zum compilieren>damit ich das ganze innerhalb von 3 Minuten testen kann.
Total erstaunlich: Manche Leute können sich nicht vorstellen, dass man
etwas in 3 Minuten compilieren und ausprobieren kann und dass es eine
durchaus vernünftige Sache ist, eine solches Beispiel für alle zur
Verfügung zu stellen.
Was ich ja im Laufe des Threads auch schließlich gemacht habe.
Mal ehrlich: Wie bescheuert muss man sein?
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