![]() |
Punkte verbinden!
Hi @ all
ich bins mal wieder: :oops: Ich steh vor folgendem problem: ich habe in einem memo ca. 30 werte (zwischen 0 und 99), diese möchte ich auf einem festgelegten image bereich eingezeichnet haben, die punkte sollen festgelegt werden und dann nach der reihe miteinander verbunden werden, sodass hinterher eine linie von links nach rechts ensteht!!!!! Kann mir jemand helfen, habe schon Versuche mit verscheidenen sachen gestartet, alle gescheitert! Cya Chriss :coder: |
Hallo,
sind die Werte in der Memo durch irgend welche Sonderzeichen getrennt, oder stehen die einfach so hintereinander? Woher hast Du die Werte? Liest Du die irgendwo ein? Und soll jeder Punkt mit jedem verbunden werden? Ich versteh das nicht so ganz mit: "sodass hinterher eine linie von links nach rechts ensteht" Grüsse, Daniel :hi: |
schau die mal LineTo und MoveTo von TCanvas an!
|
schon recht, und wie bekomme ich meine z.B. 50 werte in die x und y punkte?
|
Ich verschieb es mal nach Multimedia/Grafik.
Grüsse, Daniel :hi: |
Genau, beschreib mal die Formatierung von dem Memo, bzw. dem, was drinsteht.
|
also:
Ich poste einfach mal den Quelltext, vielleicht versteht ihr das dann! Ins Memo werden Zahlen aus einer Datei gelesen:
Code:
Luckie: Code auf das wesentliche gekürzt.
unit stat_prog_Unit;
@Chriss:
(Das kommt nicht als PN, damit andere Benutzer nicht immer wieder den gleichen Fehler machen.) |
Moin Chriss,
solch langen Units lieber anhängen, da muss man ja ewigkeiten Scrollen und benutze auch bitte die Delphi-Tags! Danke. [ delphi]Code, Code[/delphi] Grüsse, Daniel :hi: |
Anstatt MoveTo/LineTo kann man die Punkte auch in ein Array of tPoint speichern und dieses Array an Canvas.Polygon übergeben, wenn man eine kreisförmige Figur haben will.
|
sorry, ich dachte nur, dass könnte vielelicht helfen, evtl. Fehler, die ich vorher gemacht habe und nicht bemerkt habe, als auslöser für weitere probleme sein könnten. ihr müsst mich ja nicht sofort anmachen
|
Hi Chriss,
Zitat:
Also nochmal! Du hast eine Liste an Werten in der Memo. Du möchtest die Punkte auf einem Image zeichnen. Aber, wir müssen wissen, wie die ganzen Werte in der Memo getrennt sind. Um mit Canvas zu Zeichnen, muss man aber x und y angeben. Uns ist hier aber nicht Klar, welche Werte für x und welche für y. Daher die Frage wie die Werte den in der Memo getrennt sind. Ist die erste Zahl für x, die nächste für y, die nächste wieder für x usw., oder wie soll das denn aussehen? Kann man es sich aussuchen an welchen Stellen erscheinen sollen? Grüsse, Daniel :hi: |
schon gut sorry!
DAS is das problem, ch habe da die Werte und habe jetzt das ganze mit einem Koordinatenkreuz versucht (image) x und y werte (höchstwerte) sind vorgegeben, bzw. ergeben sich aus den höchstwerten! die x zeile ist im moment auf 12 stellen festgelegt! d.h. es stehen nur 12 x - werte zur verfügung, also werden die im memo stehenden werte y-werte sein. mein problem: wie bekomme ich variable y-werte in die canavas funktion (koordinaten) |
Wie genau sieht di Datei aus?
Delphi-Quellcode:
Wie haben wir uns das vorzustellen?
1|2 2|12 32|3 89|2 1|34 ...
oder 1,2,23,31,5,7,57,75 -- 123,12,32,3,5,1,7,34 oder 1,2 34,43 34,324 34,43 34,75 oder x=1; y=2 # x=21; y=231 # x=23; y=321 oder 123135434676786986349623165412394 (und immer 2 Stellen für x und y) zwei,drei ; siebzehn,einundzwanzig ; drei,eins An sonsten der Reihe nach:
Delphi-Quellcode:
PS: Der Ursprung ist oben links...
with canvas do
begin moveto(x1,y1); lineto(x2,y2); lineto(x3,y3); ... end; |
die x koordinate ist mit momentan 1 - 12 vorgegeben!!!!!!!!!!!!!!!!!
und die datei, aus der gelsen und ins memo eingelesen wird sieht so aus:
Code:
1
2 3 5 4 6 7 8 9 ... also habe ich im code folgendes stehen:
Code:
with canvas do begin moveto(1,?); lineto(2,?); lineto(3,?); ... end; |
Gott sei gepriesen. Nach 14 Postings endlich was brauchbares mit dem man arbeiten kann.
Die brauchst nur die Datei zeilenweise auslesen, den Wert den du erhältst in einen Integer verwandeln und als y-Koordinate einsetzen. Stichworte: Assignfile, reset, readln, eof, while, IntToStr |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr. |
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