Wie weißt man in C++ 3D Objekten Befehle zu bzw. lässt sie darstellen?

... komplette Frage anzeigen

2 Antworten

Hey holo.

Nunja als erstes musst du einmal deine Objekte erstellen. Gehen wir mal vom einfachsten aus, du möchtest ein zwei dimensionales Raumschiff in ein "leeres" Fenster laden. 

Dazu erstellst oder lädst du erst einmal ein Bild auf dem dein Raumschiff abgebildet ist, dann lädst du das Bild in dein Programm und anschliessend programmierst du eine Bewegung des Raumschiffs, was im Grunde nur eine Veränderung der X bzw. Y-Position des Bildes auf dem Fenster entspricht.

Ist an und für sich wohl recht simpel und verständlich hoffe ich. 

Nun kann man das ganze selbstverständlich in seinem eigenem Code schreiben, was aber nicht wenig Fachkenntnis und viel Zeit beansprucht. Glücklicherweise gibt es neben der std(standard)-Bibliotheken(Libs) ja aber auch noch einen Haufen anderer, zum größten Teil open Source Libs.

So zum Beispiel SFML, welches nur eins von unzähligen Beispielen darstellt. Diese spezielle Lib erlaubt es dir anhand vorgefertigter Befehle sehr viel einfacher das zu tun, was ich dir oben beschrieben habe.

https://de.wikipedia.org/wiki/Simple_and_Fast_Multimedia_Library

Hier sind einmal grob die Funktionen der Lib aufgeführt. Du siehst diese Lib kann nicht mit Dateiformaten für 3-Dimensionale Grafiken umgehen, dafür solltest du dir eine andere suchen. Ist aber nicht Kern der Sache, da du fragtest wie der "Zwischenraum" funktioniert. Auch das ist sehr einfach.

Bleiben wir beim Raumschiff. Du lädst mit einem Befehl aus SFML ein Bild. Das ganze kannst du dir ähnlich wie bei std::cin vorstellen. Hier speicherst du den Inhalt deines Inputs üblicherweise in einen std::string, nennen wir ihn "input". Mit diesem "input" kannst du nun all die Operationen bewerkstelligen die du möchtest. Das gleiche mit std::ifstream input; und auch das gleiche mit deiner Grafik. Du hast nun ein Objekt vom Typ(weiss ich leider nicht mehr genau :D) geladen und kannst mit diesem deine Operationen tätigen.

Ich hoffe das war verständlich genug erklärt doch wie mit allem muss man sich einfach sehr viel tiefer mit der Materie beschäftigen, wenn man etwas erreichen möchte, als nur eine Frage auf GF zu stellen ;)

Liebe Grüße, JutenMorgen!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von holo99
12.04.2016, 18:14

Erstmal danke für die ausführliche und verständliche antwort.
Momentan "erlerne" ich c++ und kenn mich mit externen libs etc. nicht besonders gut aus. Der Grund meiner frage war einfach Neugier :) , ich denke später wenn ich mehr erlernt habe werde ich es aus selbst umsetzen können.hoffe ich zumindest :D .

0
Kommentar von holo99
12.04.2016, 18:33

hab noch ein paar kurze fragen währe nett wenn du sie beantwortest:
1. sind also die libs wie zB sfml eine grafische Unterstützung oder im Code eine Unterstützung(damit man sich den ganzen code spart?) ??
2. welche nach/forteile bringen solche libs ??
3. kann man auch ohne libs arbeiten also zB eine 3d figur die ich in cinema 4d erstellt habe in meinen code bzw. programm einbinden und verwenden??

0

Hä?

Bitte formuliere die Frage so um, damit sie verständlich ist.

Wenn ich es einigermaßen verstanden habe, dann braucht man eben ein 2D/3D-Modell. damit lässt sich dann arbeiten. Es gibt ja genügend Programme bzw. GUIs dafür.

Antwort bewerten Vielen Dank für Deine Bewertung