Punkte in C
lima-city → Forum → Programmiersprachen → C/C++ und D
assembler
beide
beide bibliotheken
beitrag
bibliothek
bildschirm
eben
ebenfall
entsprechenden dlls
glut
gnome
grafische benutzeroberflchen
installationsprogramm
interface
mglichkeit
paket
thw
wieviele dlls
window
zauberwort
-
Hallo, ich wollte mal gucken, wie man Graphik mit C machen kann. Hier meine Fragen: Wie kann ich in C einen Punkt an eine beliebige Stelle des Bildschirms setzen? (In TurboPascal war es ich glaube pset.) Welche Bibliotheken muss ich dafür laden?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
C selbst hat keine Grafikunterstützung, diese lässt sich jedoch mit Hilfe von Bibliotheken einbinden. Dein Zauberwort heißt OpenGL. Als Bibliothek musst du GLUT einbinden, die kümmert sich i.d.R. dann um alle evtl. bestehenden Abhängikeiten (GLX/WGL, GLU usw.). Ein einfaches OpenGL-Tutorial sollte sich mit Google leicht finden lassen, da es sich um einen offenen Industriestandard handelt. Nachdem diverse Randbedingungen festgelegt worden sind, definiert man einen Punkt z.B. mit
glBegin(GL_POINTS);
glVertex3f(float x, float y, float z);
glEnd();
MfG,
thw -
Es müsste doch eine Möglichkeit geben, einen Punkt auf den Bildschirm zu setzen (an der Stelle (x,y)). In Dos-Zeiten gabs doch auch kein OpenGl. Ich meine jetzt nichts kopliziertes, wie 3d oder so. Nur einen Punkt in der Ebene. In QBasic gings so:
SCREEN 12
PSET (50,50), 11
Geht das in C nicht irgendwie auf einfacheren Weg? Vielleicht #include <graph.h> oder so? -
Wir hatten in der letzten Zeit einiges disskutiert. Die Beiträge sind durch den Fehler verloren gegangen. Ich arbeite hauptsächlich unter Linux, wollte dieses Projekt aber auch für Windows schreiben. Wahrscheinlich werde ich eine Kombination aus inline Assembler und SDL nehmen. Könnt ihr mir einen Tipp geben, welche die schnellste Möglichkeit in Assembler ist?
-
Warum so kompliziert?
Mach es doch einfach mit JAVA -> plattformunabhängig
Sonst wird dir das ganze schnell mal auf die nerven gehen, kann ich mir vorstellen.
Gruss
DarkShadow -
Wenns unbedingt c sein soll, geht auch gtk oder QT, gibts beides für
linux und windows. -
Zum Hintergrund: Ich habe schon ein paar kleine Konsolenprogramme geschrieben in c. Jetzt will ich mich einfach etwas weiter bilden und etwas neues dazu lernen. Java kann ich noch nicht. Zuerst wollte ich mich mal in die Grafikprogrammierung einarbeiten (hat mich schon immmer interessiert). Wenn ich QT bzw. GTK benutze, muss ich doch die Bibliotheken linken ... Muss ich in Windows die entsprechenden DLLs (z.B. von GTK oder QT) mitliefern (z.B im Installationsprogramm)? Wenn ja: Wieviele DLLs muss ich dann bei GTK/QT dazu nehmen?
-
Erstmal musst du jetzt doch nochmal erklären was du machen willst. Willst du Grafikdaten ausgeben oder möchtest du eine grafische Benutzeroberfläche erstellen?
Für Grafikdaten (direkt in den Framebuffer der Grafikkarte) benute OpenGL oder meinetwegen SDL (beides plattformunabhängig). Für grafische Benutzeroberflächen (so Fenster und Knöpfe zum Rumklicken halt) benutze GTK2 oder Qt4 - ebenfalls beides plattformunabhängig. Beide Bibliotheken unterscheiden sich im Aussehen des Ergebnisses - vgl. visuelle Unterschiede zwischen Gnome und KDE.
Wenn du mit C arbeiten willst, bleibt dir nur GTK, da es nur dafür ein C-Interface gibt. Qt bietet ein objektorientiertes Interface für C++. Qt ist sehr intuitiv aufgebaut, es lässt sich gut mit arbeiten. Aber schau da am besten selbst, was du brauchst.
Du musst die Bibliotheken nicht mitliefern, du kannst auch einfach dazuschreiben "benötigt Qt Verison x.y.z oder höher", so wie es bei Linuxprogrammen i.Allg. üblich ist. Wie das bei Windowssoftware aussieht weiß ich nicht, halte es aber für unsinnig, das komplette Qt mitzuliefern. Das Windows-Binary-Paket (weiß nicht ob nicht oder ohne Quelltext) ist etwa 30MB groß: http://www.trolltech.com/developer/downloads/qt/windows
MfG,
thw -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage