Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Graphzeichner (https://www.delphipraxis.net/90422-graphzeichner.html)

delphilover 20. Apr 2007 10:07

Re: Graphzeichner
 
ich find das in der komponentenpalette nich :cry:

Tormentor32 20. Apr 2007 10:13

Re: Graphzeichner
 
Welche Delphiversion benutzt du?

alzaimar 20. Apr 2007 10:43

Re: Graphzeichner
 
Noch ein Tipp: F1.

Einfach im Code irgendwo TImage eintippen, F1 drücken, lesen.

cust0m 24. Apr 2007 12:44

Re: Graphzeichner
 
Hallo,

ich nehme mal an, dass das größte Problem beim Umwandeln der TImage-Koordinaten in brauchbare x-Werte liegen dürfte.
Leider bin ich nicht besonders versiert mit Programmieren, quasi ein Einsteiger.
Wollte euch nur einen Denkanstoß geben, damit ihnen besser geholfen wird, selbst habe ich leider keine Ahnung, würde mich aber auch interessieren.

Edit: Habe jetzt einfach mal die x-Koordinaten im TImage mit einer Case of-Anweisung festgesetzt. Ist vielleicht etwas plumb, aber da wir hier ja erstmal nur mit fixen x-Werten arbeiten (-10 bis +10) sollte das erstmal reichen. Mein Problem besteht jetzt noch darin, die y-Werte umzuwandeln. Meine Parabel zeichnet sich nach unten 8[.
Ich weiß nicht ob ich vllt gerade ne Denkblockade habe, irgendwie hab ich nämlich die ganze Zeit das Gefühl, die Lösung wäre ziemlich simpel... Naja wäre über nen Vorschlag hier sehr dankbar

Meine Idee hier wäre vllt, die Variablen einfach umzukehren. Also a:=StrToFloat(Edit1.Text)*(-1); und dann die y-Koordinate generell nach unten zu verschieben.. Hab leider gerade keine Zeit das auszuprobieren :/


Gruß

cust0m

Tormentor32 24. Apr 2007 13:30

Re: Graphzeichner
 
Der Punkt (0|0) befindet sich obenlinks im Image. Die Einfachste möglichkeit ist es, wie du sagst, einfach mit -1 zu multiplizieren, dabei musst jedoch beachten, dass du dann den Nullpunkt in der Darstellung anpassen musst, denn du willst ihn vermutlich in der Mitte des Bildes haben.

Hmm genau das hast du ja auch geschrieben im prinzip :oops:

Also einfach asuprobieren, sobald du Zeit hast!

cust0m 24. Apr 2007 14:45

Re: Graphzeichner
 
Ja scheint alles zu funktionieren.

Allerdings werden bisher nur die Punkte eingetragen, mit pen.width:=5 sieht das auch recht gut aus, aber ich hätte gerne eine schön abgerundete und vollständige Parabel, jemand eine Idee wie ich das machen könnte?

Ich glaube dazu müsste ich den Part mit der Case of-Anweisung wegstreichen und das ganze Variabel machen, da ja für eine scheinbar "runde" Parabel sehr viele Punkte berechnet werden müssten. Um eine durchgezogene Parabel statt einzelnen Punkten zu haben, wäre meine Idee den ersten Punkt separat zu berechnen um dann mit moveto den "Stift" schonmal dorthin zu bewegen. Dann könnte ich ja einfach alles mit lineto weiterzeichnen. Im Moment sieht das ganze so aus

image1.Canvas.pen.width:=5;
image1.canvas.MoveTo(x1,y1);
image1.canvas.LineTo(x1,y1);

so steht es in der Schleife und wir immer wieder durchlaufen, somit enstehen die Punkte. Einfach LineTo geht ja schließlich nicht, da sich sonst ein Strich von der unteren Mitte zum ersten Punkt ergeben würde -> ausgeschlossen, wo kämen wir denn
dann hin :roteyes:

Wie ließe sich das verwirklichen, oder gibt es andere Möglichkeiten? :wiejetzt:


Gruß

cust0m

Tormentor32 24. Apr 2007 15:02

Re: Graphzeichner
 
Du bist auf dem richtigen Weg! Aber das MoveTo musst du nur beim ersten Punkt machen, damit du den Strich nicht hast, bei allen anderen Punkten solltest du es weglassen, damit auch eine Parabel zusatande kommt.

Mackhack 24. Apr 2007 15:07

Re: Graphzeichner
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

sollte es sowas sein? Hab mich auch mal drangesetzt gehabt!

cust0m 24. Apr 2007 15:38

Re: Graphzeichner
 
Ja, so in etwa sollte das ganze aussehen.

Wie bekomme ich das ganze so hin, dass er die Linie bei der Parabel durchgehen zeichnet. Zudem wüsste ich gerne wie du die Punkte zur Orientierung gesetzt hast. FOR - TO - Schleife für jede "Reihe", das wäre ja auch wieder nicht variabel, es sei denn macht macht eine doppelte Schleife, naja ich denke schon wieder zu weit, eins nach dem anderen.

Also nochmal das, was ich gerne hinbekommen würde:
-Variable Einteilung (Sollte ich nun alleine hinbekommen)
-Durchgezogene Linie für die Graphen (Erledigt)
-Unterschiedliche Farben für jeden weiteren Graphen (Bisher nur unterschiedliche Farben für Linear und quadratisch)
-eine Anzeige die stets zeigt auf welcher x,y-Position sich der Mauszeiger befindet - Aber Koordinatensystem-Koordinaten, nicht die
"globalen" oder die vom TImage. Also z.B. wenn man mit der Maus nach links geht, in den negativen Bereich sollte er
z.B. (x: -4.75 | y: 3.25) anzeigen.

Wäre toll wenn mir jemand sagen könnte wie ich das ganze bewerkstelligen kann...


Gruß

cust0m

EDIT: EDIT: hat sich erledigt :gruebel:

LizardKaiser 24. Apr 2007 16:14

Re: Graphzeichner
 
@custom: schau dir mal MoveWindowOrg an ;)
bzw. für mathematisch-kartesische Zwecke:
SetViewportOrgEx


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz