Funktion grafisch Darstellen
-
Hallo,
wie kann ich eine Funktion, sagen wir mal einen Sinus, als Grafik darstellen?
M.f.G.
Georg Kappenberg
-
*falscher Thread*
-
unter konsole? oder mit winapi/oder linux?
-
Ich habe meine Frage wohl falsch formuliert.
Also ich möchte ein Program schreiben in dem als Ergebnis drei Sinuskurven dargestellt werden. Ich möchte den Aufwand so gering wie möglich halten. Deshalb wäre mir eine Darstellung auf der Konsole ganz angenehm. Falls es nicht geht, müßte ich die Darstellung unter XWindows programieren.
Ich arbeite mit Debian Sarge und KDE.
Ich habe in meinen C++-Unterlagen keinen Header für eine grafische Darstellung gefunden. Gibt es doch welche?Danke für alle Mühen.
Gruß Georg
-
Auf der Konsole geht es nicht. Konsole ist nur Text (na ja - fb gibts schon).
Schau Dir mal Qt an. Das ist die C++-GUI-Bibliothek, auf der KDE basiert. Sie ist recht einfach und sehr leistungsfähig.
Tommi
-
Wenn du Qt nimmst ist vielleicht QtPlot auch interessant, wenn es ums Plotten geht.
-
klar geht das auf der konsole..
mit geringem aufwand.. *ghier für windows. natürlich kein standard (sorry hume)
du müsstest jetzt die gotoxy in ncurses wrappen. also was analoges finden für debian.
anbieten tun sich wahrscheinlich escapesequencen..#include <windows.h> #include <iostream> using namespace std; #include <cmath> void gotoxy(int y, int x); #define PI 3.1415926 #define START 0.0 #define ENDE (2.0 * PI) #define PKT 64 #define SCHRITT ((ENDE - START) / PKT) #define xA 12 #define yA 10 int main() { int zeile, spalte; gotoxy(2,25); cout << "------- Die Sinus Funktion -------"; cout << "\n\n"; gotoxy(xA, 1); for(spalte = 1; spalte < 78; ++spalte) { cout << ((spalte - yA) % 8 ? "\304" : "\305"); } cout << "\020"; gotoxy(xA - 1, yA + 64); cout << "2PI x"; for (zeile = 5; zeile < 24; ++zeile) { gotoxy(zeile, yA); cout << "\305"; } gotoxy(4,yA); cout << "\036 sin(x)"; gotoxy(xA - 8, yA + 1); cout << " 1"; gotoxy(xA + 8, yA + 1); cout << " -1"; int anfsp = yA, endsp = anfsp + PKT; for(spalte = anfsp; spalte <= endsp; ++spalte) { double x = (spalte - yA) * SCHRITT; zeile = (int)(xA - 8 * sin(x) + 0.5); gotoxy(zeile, spalte); cout << "*"; } gotoxy(25,1); } void gotoxy(int y, int x){ COORD coords; HANDLE Hnd = GetStdHandle(STD_OUTPUT_HANDLE); if (Hnd == INVALID_HANDLE_VALUE) return; coords.X = (x - 1); coords.Y = (y - 1); SetConsoleCursorPosition(Hnd, coords); }
-
passende debian gotoxy, dann natürlich die windows.h rausnehmen
void gotoxy (int cursor_x, int cursor_y){ printf ("\33[%d;%dH", cursor_x, cursor_y); }
-
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Das einfachste dürfte gnuplot sein. Das ist keine Bibliothek, sondern ein externes Programm, das über die Standardeingabe Plot-Befehle entgegennimmt (siehe man: popen(3)). Ausgabe auf X-Fenster oder z.B. auch als Postscript-Datei.