kreise mit c++ erzeugen



  • hallo,

    ich habe ein programm für einen zweimassenschwinger geschrieben, dass mir die bewegungen zweier massen in eine txt-datei (zeit, ort) abspeichert. diese dateien kann ich mir per gnuplot als grafik anschauen. ich würde gerne aber, z.b. in einer cmd-shell (oder ein anderes shell), mir eine animation darstellen lassen. ich hatte an zwei kreise gedacht, mit jeweils einem abstand, deren mittelpunkte (natürlich der ganze kreis) diese bewegung aus der txt-datei abfahren. also somit eine animation auf dem bildschirm darstellen. kann man das und wenn ja, wie bitte mit c++ programmieren?

    danke


  • Administrator

    C++ kennt keine graphische Ausgabe. C++ weiss nicht einmal was eine Konsole ist 😉

    Falls du auf Windows bist, dann wäre es sogar mit der WinAPI schwierig, da man in eine Shell nicht sinnvoll zeichnen kann, denn man müsste dies immer bei einer WM_PAINT Nachricht tun, die kann man aber nicht so einfach abfangen.
    Auf Windows empfiehlt es sich für sowas ein GUI Framework oder ähnliches heranzuziehen. Du kannst natürlich auch mit der WinAPI direkt ein Fenster erstellen und darin zeichnen.

    Über Linux und Mac kann ich nichts sagen, was die Konsole betrifft. Platformunabhängige GUI Frameworks oder entsprechende GUI Möglichkeiten für Linux oder Mac gibt es natürlich 🙂

    Man könnte für sowas sogar ein OpenGL/DirectX Framework nehmen, wie zum Beispiel SFML. Das wäre sogar durchaus interessant, dann könnte man weiterhin auf der Konsole bleiben und nur ein paar graphische Ausgaben über ein Fenster mit SFML realisieren.

    Grüssli



  • erstmal vielen dank.

    ginge es nicht, wenn man z.b. mit strichen eine kugel zeichnette und die strich anfangs-und-endpunkte bewegten sich zeitlich nach dem ort. also hoch und runter...hoch und runter....ganz spartanisch. diese grafikanimation ist nicht das wichtigste, aber es sollte ein eindruck für diesen zweimassenschwinger geben.

    danke


  • Administrator

    rasidrasid schrieb:

    ginge es nicht, wenn man z.b. mit strichen eine kugel zeichnette und die strich anfangs-und-endpunkte bewegten sich zeitlich nach dem ort. also hoch und runter...hoch und runter....ganz spartanisch. diese grafikanimation ist nicht das wichtigste, aber es sollte ein eindruck für diesen zweimassenschwinger geben.

    Mit reinem C++ nicht. Wieso?
    Da C++ keine Konsole kennt, kann man die Konsole nicht löschen. Da müsstest du auf Windows auf die WinAPI zurückgreifen:
    http://msdn.microsoft.com/en-us/library/ms682073.aspx

    Es gibt zwar std::system("cls") , allerdings ist das nicht Platformunabhängig und zudem extrem langsam. Gerade für eine Animation ist das eher ungeeignet. Zudem löscht es jedesmal alles in der Konsole, das ist auch nicht so sinnvoll.

    Grüssli



  • danke


Anmelden zum Antworten