Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 29.03.2006, 16:39 Titel: Graphikdarstellung mit QB 4.5 (einfach) machbar? |
|
|
Ich will Datenpunkte graphisch darstellen. In einem zwei-(oder drei)dimensionalen Koordinatensystem. Und zwar als Kurve. Ein Kurvenpunkt soll also zwei(drei) zusammengehörige Meßwerte repräsentieren.
Da zu einer Meßung noch mehr Daten gehören will ich die anzeigen in einem kleinen Fenster, das sich öffnet, wenn ich mit dem Cursor einen bestimmten Kurvenpunkt anfahre. Die Daten, die die Achsen bestimmen möchte ich einfach austauschen können.
Ich will verschiedene Kurven gleichzeitig darstellen um sie visuell miteinander zu vergleichen, denn das geht wesentlich schneller als Zahlenangaben durchzusehen.
Ich will die Darstellung speichern und ausdrucken und wiederverwenden.
Ein Beispiel:
Ein wasserstoffgefüllter Ballon bewegt sich mit dem Wind und steigt.
Er startet zu T=0 in O(t=0;y=0). Nach t Sekunden ist er in x, y, z hat die Geschwindigkeit v,vx,vy,vz.
Ich wähle t als unabhängige Variable und die Höhe y als abhängige. Das soll durch einen Kurvenzug dargestellt werden. Wenn ich die Kurve anfahre und einen Kurvenpunkt gefangen habe, sollen die anderen zu diesem Kurvenpunkt gehörenden Daten also x,z,v,vx,vy,vz angezeigt werden.
Ich möchte aber ein andermal vielleicht y über x darstellen und die restlichen Daten in die Cursoranzeige verbannen.
Ich möchte gespeicherte Kurven zu eben errechneten laden und anzeigen und damit vergleichen.
Kann das denn mit QB 4.5 verwirklicht werden? Brauch ich da Spezialkenntnisse? Gibts da Tools? Soll ich lieber zu einem anderen Dialekt umsteigen?[/b] _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 29.03.2006, 19:42 Titel: |
|
|
Das Zwei Dimensionale ist machbar, das Drei Dimensionale ist mühsam. (Dafür braucht man Gedult und/oder eine passende Engine)
Ein zweites Fenster kann QBasic aber nicht erzeugen, aber du kannst ja einfach den Bildschirm mit Linien aufteilen.
Zum Speichern benötigst du etwas Code, der sollte aber leicht zu finden sein.
(Forum Suche oder vielleicht Postet ihn jemannd, wenn du freundlich fragst)
Das drucken geht dann darüber, das man die Gespeicherte Datei dann z.B. in Paint öffnet und dann druckt.
Wobei mal ehrlich:
Für sowas gibt es doch Excel.
Da davon aus gehe das es eines deiner ersten Projekte ist, würde ich dir von der Programmierung (egal welche Sprache/Dialekt) abraten, es ist einfach Wahnsinnig viel Aufwand. |
|
Nach oben |
|
 |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 04.04.2006, 11:47 Titel: Andere Software nehmen ? |
|
|
Danke für deine Infos Michael!
Export nach Exel hab ich schon probiert. Ist aber nicht so einfach. Ich bin wohl auch mit Excel nicht perfekt. Schaffe es z.B. nicht unverzerrte Kurven zu erhalten, wenn meine Abszissendaten nicht das gleiche Intervall einhalten. Die sind dann so verformt, dass sie unwirklich erscheinen.
Irrsinniger Aufwand: Deshalb frage ich ja vorher: Ist ein Wechsel zu einem anderen Programm wie VB sinn- und wirkungsvoll?
Ich werde ein paar allgemeine Fragen zu den Grundrechenarten noch stellen und mir dann weitere Gedanken zu einem Softwarewechsel machen.
Nils _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 04.04.2006, 13:03 Titel: |
|
|
Hallo Nils
Ich denke, das lässt sich recht gut in QB umsetzen. Ein Wechsel zu VB oder einer anderen Sprache wäre nur nötig, wenn du nicht nur auf die Funktion, sondern auch auf das Design und z.B. eine höhere Auflösung als 640x480 viel Wert legen würdest.
Ansonsten geht es ja im Prinzip nur darum, Punkte auf dem Bildschirm zu zeichnen. Ich habe es bei dreidimensionalen Darstellungen oft so gemacht, dass ich den Bildschirm in vier gleichgrosse Flächen aufteilte und dort jeweils ein Koordinatensystem mit xy-, xz- und zy-Achse eingetrug. Die vierte dient dabei als zusätzliches Ein- und Ausgabefeld. Das mit dem Anfahren von Punkten mit der Maus und dem umwandeln in ein "druckbares" Grafikformat ist etwas aufwändiger, dafür gibt es aber hier im Forum und auf www.qbasic.de einiges an Hilfe und Programmen. Sonst ist es eigentlich wie gesagt nur das setzen von Pixeln. Schreib' doch nochmal etwas genauer, wo deine Schwierigkeiten bei der Umsetzung liegen
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 04.04.2006, 16:20 Titel: |
|
|
Wenn man bei Excel auf die Formate .TXT/.ASC/.CSV zurückgreift (=reine ASCII-Textformate), dann klappt das Zusammenspiel mit QB sogar vollkommen problemlos.
Mit einem Code wie
Code: | PRINT#1, LTRIM$(STR$(wert!)); CHR$(9); LTRIM$(STR$(wert2!)) |
kann man problemlos tabulatorseparierte Einträge erzeugen, umgekehrt mit Hilfe von INSTR() die Felder wieder herausextrahieren. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.04.2006, 17:48 Titel: |
|
|
Auch in Visual Basic muss man Programmieren .
Den Umstig auf VB empfehle ich dir nicht, weil die paar Vorteile durch den Aufwand des Umstieges aufgefressen werden.
Visual Basic ist kein Wundermittel das alles kann, auch dort muss man viel ähnlich wie in Qbasic lössen.
Der Aufbau von Visual Basic weicht stark von QBasic ab, vorallem wenn man eben die VB typischen Fähigkeiten nutzen will.
Und eben diese Fähigkeiten, die ganz anders sind als die von QBasic, machen den Umstieg aufwendig aber auch Interesant. |
|
Nach oben |
|
 |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 05.04.2006, 10:47 Titel: |
|
|
Skilltronic, dreael, Michael. Danke für Eure Postings!
Deine Idee Skilltronic ist sehr interessant. Ich hab an so was mal gedacht. Da ich aber Null Ahnung von Graphik habe, schien mir das viel zu problematisch! Hast Du mal ein Muster, das Du mir senden könntest, damit ich eine Ahnung kriege, wie das geht?
Um das nochmal zu verdeutlichen dreael: Ich habe z.B. Abszissenwerte: 5,67/11,12/16,1 ... 356,4. Excel nimmt jetzt nicht eine Abszisseneinteilung 0-360 und unterteilt sie in gleiche Teile, sondern errechnet(?) aus den P(x) eine eigene Teilung. Das verzerrt meine Kurven. Ich bin selbst schuld, weil ich tatsächlich nur abhängige x-Variablen habe für den Punkt P(x,y), aber so tue als sei x unabhängig. Ich habe ja für meine tatsächlich unabhängige Variable viele abhängige Daten, die ich auch untereinander darstellen will.
Ja, programieren muß ich immer Michael, das weiß ich. Ich programiere nur wegen meines Problems, das ich lösen will. Deshalb habe ich mich noch nie mit Graphik beschäftigt. Irgendwie brachte ich das aber immer hin. Aber wenn ich mich jetzt ev. in Graphik reinknien soll, ist es sich nicht schlecht zu wissen, ob nicht andere Dialekte dann sinnvoller wären. Ich will schließlich halbwegs auf dem Stand der Dinge sein. Ich weiß z.B. garnicht ob eine QB.exe heutzutage auf jedem Betriebssystem läuft etc.
Vielleicht konnte ich das jetzt noch ein bißchen klarer machen. _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 05.04.2006, 18:12 Titel: |
|
|
Gut, ein Beispiel:
Code: | DIM werte(1, 10)
SCREEN 12
FOR i = 0 TO 10
INPUT "x=", x
INPUT "y=", y
Wert(0, i) = x
Wert(1, i) = y
NEXT i
CLS
FOR i = 0 TO 9
x1 = Wert(0, i)
y1 = Wert(1, i)
x2 = Wert(0, i + 1)
y2 = Wert(1, i + 1)
LINE (x1, 480 - y1)-(x2, 480 - y2)
NEXT i
SLEEP |
Zu
Zitat: | Ich weiß z.B. garnicht ob eine QB.exe heutzutage auf jedem Betriebssystem läuft etc. |
Einige Leute berichten über Probleme mit Windows XP.
Wie es mit Windows Vista aussehen wird, wissen wir noch nicht mit Sicherheit, tendenziel gibt es aber immer mehr Probleme mit neuen Windows Versionen.
Das was du jetzt in QBasic Programierst kannst du fast 1:1 in Freebasic und zu grossen teilen auch in Visual Basic anwenden.
Zu Excel:
Kannst du mir mal die Excel Datei geben und sagen wie es ausehen soll?
Das sollte in Excel machbar sein. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 05.04.2006, 20:25 Titel: |
|
|
Excel kennt sonst dafür verschiedene Diagrammtypen; bei einem beispielsweise einfachen Balkendiagramm bzw. Datenpunkte durch Linien verbunden werden die x-Werte regelmässig verteilt. Wenn dagegen die Kurve als richtiger X-Y-Plot entstehen soll, muss man schon auf den X-Y-Digrammtyp zurückgreifen; dann darf das x auch ohne Weiteres abnehmen, so dass Schlingen, Lissajous-Figuren usw. erzeugt werden können. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 07.04.2006, 18:12 Titel: |
|
|
Nils hat mir per E-Mail die Excel Datei zugesendet und ich habe sie auf meinen Webspace hochgeladen:
http://mypage.bluewin.ch/OpenDize/1.xls
Zur Lösung des Problems:
http://mypage.bluewin.ch/OpenDize/2.xls
Excel hat für solche Funktionen den Diagramm Typ XY.
Was mir auf fällt:
Fast 1000 Punkte Eingetragen .
Normalerweisse Reichen auch viel weniger.
Zudem sieht es so aus, als ob du das von Hand oder mit Taschenrechner berechnet hast, auch diese Aufgabe kann dir Excel abnehmen. |
|
Nach oben |
|
 |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 07.04.2006, 18:31 Titel: Für Michael und alle anderen: |
|
|
-Michael: Schön dass das geklappt hat mit dem Datenversand. Und Du gleich Zeit hattest! Als attachement zur PN geht es leider nicht zu versenden!(Vielleicht ändert sich das mal?) .
Die Daten sind mit QB errechnet, nicht von Hand. Deshalb programmier ich doch. Du hast doch die Kurve auch, oder? Die ist doch mit dem xy-feature erstellt! Kurmm sind die Zahlen, weil beide Datenreihen abhängige Variablen repräsentieren. Ich müßte Excel dazu bringen die Datenreihe auf der Abszisse auf einem kontinuierlich aufgeteilten Datenstrahl abzubilden.
- dreael: Ich weiß nicht, woher Du das hast. Aber mir wäre es sehr recht, wenn es so wäre! Wie bringe ich denn Excel dazu das zu tun, wovon Du glaubst, dass Excell das standardmäßig tut? Michael hat nicht nur die beiden datenreihen, sondern ein Excell sheet mit ausgeführter 8aber verbogener) Kurve!
Ihr könnt das alle über Michael link ansehen!
Nils  _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 07.04.2006, 18:49 Titel: |
|
|
Ja, aber die Berechnungen kann auch Excel selbst ausführen.
Für das brauchst du nicht ein externes QB Programm.
Ist die Abzisse eigentlich die X oder die Y Achse?
Hast du dir die zweite Datei angesehen?
Was stimmt damit nicht?
Hier nochmal der Link:
http://mypage.bluewin.ch/OpenDize/2.xls
Wie soll es aussehen?
(bitte möglichst einfach, was eine Abzisse ist weiss ich nicht mehr) |
|
Nach oben |
|
 |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 08.04.2006, 10:44 Titel: |
|
|
Moin, Michael und alle anderen!
Die Berechnungen erhalte ich aus einem selbstgeschriebenen Näherungsverfahren(natürlich mit QB4.5). Je kleiner die Iterationsschritte, desto genauer wird -zumindest theoretisch- das Ergebnis (wenn nicht die Gleitkommafehler sich derart addieren, dass sie alles kaputt machen). Deshalb die vielen Datenpunkte. Die Menge ist noch harmlos.
Die Abszisse ist der horizontale Zahlenstrahl. Da wird immer (so vorhanden) die unabhängige Variable eingetragen. Interessiert also, wieviel Liter Benzin ein Auto in der Stunde Autobahnfahrt bei Vollgas verbraucht, dann ist die Zeit unabhängig von deinem Versuch. Sie wird auf der x-Achse eingetragen. Und zwar in gleichmäßigen Schritten.
Die Schritte auf meiner x-Achse sind von Excel aber ungleichmäßig geteilt eingetragen. Das ist ein Grund warum ich Graphik selbst programmieren will/muß!?
Ich kann Deinen link nicht nutzen, denn ich arbeite an einem öffentlichen Gerät und kann weder speichern noch Dateien ansehen. Weiß also nicht, was Du meinst.
Eigentlich wollte ich nur eine Datein schicken.
Die Kurve, die excel aus den beiden Datenreihen macht (1. Sp. x-/2.Sp.y-Achse) beginnt fast kreisförmig und läuft nach dem Gipfelpunkt fast wie ein schräge Gerade, sozusagen wie einen Schwimmbadrutsche. Es müßte genau umgekehrt sein. Ziemlich gerader immer flacher werdender Anstieg und dann rascher immer steilerer Abstieg. Der absteigende Ast muß wesentlich kürzer sein als der aufsteigende.
Kannst Du die Kurve nicht hier posten?
Hast Du schon etwas damit ausprobiert?
Hattest nicht Du, dreael irgendwie eine Idee gehabt? Hast Du die ausprobiert anhand der Daten?
Mich interessiert eine excel Lösung schon, aber wir sollten vielleicht näher an QB diskutieren!
So long Nils
p.s.:am Samstag um ca. 09.43 flog ich aus dem Forum und es war nicht mehr zu erreichen? Meinen Beitrag hat´s beinahe zerbröselt. _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 08.04.2006, 11:10 Titel: |
|
|
Die Zweite Datei ist eben mein Versuch es in Excel Darzustellen.
Ich mache einen Screenshoot und lade diesen hoch.
Wenn du die Grafische Darstellung dann mit QB machen willst, bekommst du Probleme mit den 1000 Punkten.
Soviel ich weiss, gelangt man in QB recht schnell an speicher grenzen.
(Zudem kann man in QB nur Auflösungen bis 640*480 erzeugen und zwei berechnete Punkte pro Pixel ist viel) |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 08.04.2006, 19:31 Titel: |
|
|
Wegen dem "Rausschmiss": der "neue" Hoster des Forums, HerbertSoftware, macht wie dreael früher, Samstags früh ein Serverupdate. Deswegen war es dann auch nicht mehr erreichbar.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 10.04.2006, 10:26 Titel: Hi Michael, die Kurve sieht ja ganz gut aus... |
|
|
... wie hast du das hingekriegt? Klär mich doch mal bitte auf! Ich habe so was ähnliches geschafft, weiß aber nicht mehr wie! Doch das Problem war nach wie vor die Teilung.
Um das nochmal zu verdeutlichen: Ich brauche einen X-Zahlenstrahl von Null bis X, mit frei von mir gewählter Teilung. Darauf sollen die krummen Werte eingetragen werden. Und das krieg ich nicht hin!!!
Das mit der Zahlenfülle hab ich mir auch schon gedacht. ich kann ja nur soviele Graphikeinträge machen, wie Pixel zur Verfügung stehen. Sonst muß man Daten rausnehmen. (Oder aus den Daten eine --->Spline(kurve) zaubern!).
Hübscher Screenshot. Kann ich sowas auch posten? Wie machtst Du das?
Hi Mao! Dachte mir schon sowas! NullProblem.
Nils _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 10.04.2006, 12:51 Titel: |
|
|
Zum den Bildern:
Ich benutze dazu http://www.imageshack.us/, bild hochladen Code kopieren fertig.
Das einzige was es zu beachten gilt, ist die maximal grösse (1024 Kilobyte).
Wegen der Darstellung:
Ich geh an mienen zweit Rechner mit Office und mache eine Screenshoot Reihe.
Zitat: | (Oder aus den Daten eine --->Spline(kurve) zaubern!) |
Oder man lässt denn Computer diese Punkte ganz einfach Liniear (also wie mit einem Lineal) verbinden.
Wenn die Form nicht alzu Exotisch ist, geht das recht schön.
(Bie Exotischen Formen bekommen aber auch oder gerade Spline Verfahren Probleme) |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 10.04.2006, 14:21 Titel: |
|
|
Zu Excel:
Excel starten und die Datei öffnen:
Dann die Werte markieren:
Hier rauf klicken:
Dann erscheint dieser Dialog:
Wähle dort "Punkt (XY)"
Dann kannst du noch die Form wählen, weil du wahnsinnig viele Punkte hast, lohnt sich das Unten Rechts.
Das Mitte Rechts ist übrigens ein Spline, ihn kannst du verwenden wenn du weniger Daten hast.
(Aber nur dann, sonst braucht das Berechnen zuviel Zeit)
Das kannst du mit weiter abnicken:
Das empfehle ich nur, es ist nicht nötig:
Wechsle auf "Legende"
und deaktiviere dort "Legende anzeigen"
Jetzt noch auf "weiter" und dann "Fertig stellen" und die Grafik ist da.
Jenach Excel Version kann sich der Ablauf in denn Details unterscheiden, aber das Prinzip ist das gleiche. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 10.04.2006, 15:13 Titel: |
|
|
Michael Frey hat jetzt gerade genau das schön bebildert gepostet, wo ich darauf hinweisen wollte: die verschiedenen Diagrammtypen von Excel. Speziell auf den X-Y-Punktetyp wollte ich hinweisen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 11.04.2006, 16:34 Titel: |
|
|
-Michael: Toll, habe aber jetzt keine Zeit. Muß mir das erst genau angucken! Hoffentlich hast Du das genau beschrieben wie dDu das mit Excell hingekriegt hast!
-dreael: Da such ich ja die ganze Zeit eine Möglichkeit die Achsen so zu formatieren wie ich das will. Aber es war halt nochg ncit zu finden. Ob das jetzt so geklappt hat bei michael weiß ich nicht. Muß das mal selbst machen und die daten mit der Kurve genau vergleichen.
Ich melde mich wieder.
Nils  _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
 |
|