| Autor |
Beitrag |
FlaVa
      
Beiträge: 21
|
Verfasst: So 21.05.06 18:06
hallo,
ich wollte einfach mal wissen, was ich machen muss um ein Koordinatensystem zu erstellen? welche Form muss ich in die Delphiform einfügen und wie muss ich was umwandeln? ich hab leider keine Ahnung davon, also wollt ich eifnach mal nachfragen... ich hab auch schon das ganze forum durchstöbert und irgendwie immer nur so fortgeschrittene sachen gefunden... also ich weiß ja nicht mal wie ich ein koordinatensystem einfach so einfügen kann und wie ich dann letztendlich die Funktion der Form a*x^b zeichnen lassen kann....
kann mir jmd. verraten was ich machen muss um ein Koordinatensystem zu erstellen und wenigstens schon mal eins zu sehen, um mich dann um das zeichnen des graphens zu kümmern?
Ich würde mich seeeeehr über Hilfe von euch freuen...
mfg FlaVa
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: So 21.05.06 18:19
Es gibt dafür zwar Komponenten aber es selber zu machen ist auch nicht schwer. Ich habe dazu mal eine prozedurale Version eines selbstskalierenden Koordinatensystems gepostet. Ist an sich nicht schwer. Was du brauchst eine Fläche zum drauf zeichnen Bitmap. Und Linien zeichnen. Das kann man ganz einfach über mybitmap.canvas.usw machen da gibst dann auch sowas wie textout damit kann man die Achsen beschriften etc. je nachdem wie komplex man es haben will. Gewöhnungsbedürftig ist nur, dass das canvas oben links (oder rechts?) den Punkt 0/0 hat. Also immer die WErte invertieren ist aber nicht schwer. Einfach mal damit anfangen in die Mitte des Bildes ne Linie zu malen... Der Rest ergibt sich von alleine.
|
|
FlaVa 
      
Beiträge: 21
|
Verfasst: So 21.05.06 18:33
wo find ich denn diese bitmap? in delphi hab ihc das jetzt nicht gefunden oO
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: So 21.05.06 18:43
laut mainer Delphi Hilfe in der Unit graphics.
Einfach myzeichenfläche:=TBitmap.create;
//Seitengrößen setzen
myzeichenfläche.canvas.lineto(...);
etc.
|
|
LLCoolDave
      
Beiträge: 212
Win XP
Delphi 2005
|
Verfasst: So 21.05.06 18:46
Der Einfachheit halber würde ich einfach eine TPaintbox verwenden (sollte als Komponente unter System liegen wenn ich mich recht erinnere), diese hat auch eine Canvas und ist gleichzeitig auch schon die grafische Ausgabe des Koordinatensystems. Sobald die eigentliche Problemstellung gelöst ist, kann man ja das ganze immernoch auf ein TBitmap umschreiben.
|
|
FlaVa 
      
Beiträge: 21
|
Verfasst: So 21.05.06 18:48
ehm... ich ´find da kein bitmap... dieses bitmapfeld soll doch in die FORM und in den UNIT schreib ich welchen Quelltext? den du da grad versucht hast anzudeuten oder was hatte diese Textstelle zu bedeuten? ich kann delphi nich gut deswegen frag ich so dumm
|
|
FlaVa 
      
Beiträge: 21
|
Verfasst: So 21.05.06 18:52
LLCoolDave hat folgendes geschrieben: | | Der Einfachheit halber würde ich einfach eine TPaintbox verwenden (sollte als Komponente unter System liegen wenn ich mich recht erinnere), diese hat auch eine Canvas und ist gleichzeitig auch schon die grafische Ausgabe des Koordinatensystems. Sobald die eigentliche Problemstellung gelöst ist, kann man ja das ganze immernoch auf ein TBitmap umschreiben. |
und wie mach ich dann weiteR? jetzt hab ich ja das Feld... und wie zeichne ich da jetzt die x und y achse und was muss in den quelltext?
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: So 21.05.06 19:14
Was heißt hier nicht gut. Wenn in dem entsprechenden Objekt was du benutzt TBitmap, TPaintbox, oder sonstewas eine Funktion zum einzeichnen eines Koordinatensystems ist hast du Glück (dann wirst du aber spätestens eine Stunde später auf ein neues Problem fallen bei deinem Kenntnisstand), andernfalls muss man das wohl selbst machen!!!! Wie macht man sowas?? Man schaut welche Befehle kann ich bzw welche stehen mir zur Verfügung und wie kann ich mein Koordinatensystem oder x-beliebeiges anderes Problem damit lösen.
Und ich behaupte: Ein Koordinatensystem kann man nur mit Linien malen ...canvas.lineto(x,y oder so).
Daher war mein Quellcode nicht irgendeiner.
Um es dann sichtbar zu machen, kann man das Bitmap einem Image das man auf der Form platzieren kann zuweisen = > fertig.
|
|
Green
      
Beiträge: 283
Windows XP Home
Delphi 6 Enterprise
|
Verfasst: So 21.05.06 19:15
also ich würde an deiner stelle die komponente TImage nehmen welche sich im Additional bereich findet. Diese ist wesentlich stabiler und einfacher (mit speichern und laden) als TPaintBox.
- du ziehst dir eine TImage kompo aufs formular, wie groß du sie halt haben willst.
- dann kannst du mit Image1.Canvas.MoveTo(x,y); zum punkt x,y den 'stift' (pen) bewegen. (0,0 ist LINKS OBEN!!)
- dann kannst du mit Image1.Canvas.LineTo(x,y); eine Linie zum Punkt x,y zeichnen.
- mit Image1.Canvas.Pen.Width := 1; kannst du die Dicke der Linie bestimmen (vor dem zeichnen natürlich ^^) das natürlich in Pixeln
- mit Image1.Canvas.Pen.Color := clBlack; kannst die farbe bestimmen. (z.b. clRed,clGreen etc.)
so den Rest müsstest du selber rausfinden
mfG Green
|
|
Jetstream
      
Beiträge: 222
|
Verfasst: So 21.05.06 19:17
Es so tolle Befehle namens canvas.moveTo(x,y:integer) und canvas.lineTo(x,y:integer),
mit dem ersten setzt du den "Stift" an eine Stelle im Bild, mit dem zweiten malst du dann eine gerade Linie.
Du darfst dabei natürlich nie vergessen, dass in Delphi die Koordinaten im Bild nach links unten größer werden,
im mathematischen Koordinatensystem jedoch nach links oben!
|
|
FlaVa 
      
Beiträge: 21
|
Verfasst: So 21.05.06 19:25
Green hat folgendes geschrieben: | also ich würde an deiner stelle die komponente TImage nehmen welche sich im Additional bereich findet. Diese ist wesentlich stabiler und einfacher (mit speichern und laden) als TPaintBox.
- du ziehst dir eine TImage kompo aufs formular, wie groß du sie halt haben willst.
- dann kannst du mit Image1.Canvas.MoveTo(x,y); zum punkt x,y den 'stift' (pen) bewegen. (0,0 ist LINKS OBEN!!)
- dann kannst du mit Image1.Canvas.LineTo(x,y); eine Linie zum Punkt x,y zeichnen.
- mit Image1.Canvas.Pen.Width := 1; kannst du die Dicke der Linie bestimmen (vor dem zeichnen natürlich ^^) das natürlich in Pixeln
- mit Image1.Canvas.Pen.Color := clBlack; kannst die farbe bestimmen. (z.b. clRed,clGreen etc.)
so den Rest müsstest du selber rausfinden
mfG Green |
das is mir jetzt peinlich... also wo finde ich denn diese Befehle Image1.Canvas.MoveTo(x,y) und image1.canvas.line.to
sorry, aber ist echt wichtig ich versteh das nicht so oO
|
|
Jetstream
      
Beiträge: 222
|
Verfasst: So 21.05.06 19:28
Du hast ne Paintbox erstellt ?
Du siehst die Paintbox wenn du kompilierst als weiße Fläche ?
Dann ersetze das "Image1" aus "Image1.Canvas.MoveTo(x,y)" durch den Namen der Paintbox.
|
|
Green
      
Beiträge: 283
Windows XP Home
Delphi 6 Enterprise
|
Verfasst: So 21.05.06 19:32
@Flava:
die musst du nicht 'finden' das ist fertiger Code... nur noch abtippen und starten ^^
z.Bsp.:
du machst nen Button und nen Button und nen TImage auf das formular, klickst doppelt auf den button und schreibst folgendes:
Delphi-Quelltext 1: 2: 3: 4: 5:
| procedure TForm1.Button1Click(Sender :TObject); begin Image1.Canvas.MoveTo(10,10); Image1.Canvas.LineTo(20,20); end; |
jetzt probierst du aus was passiert ^^ (also F9 oder starten halt) und dann auf den button klicken
ahja und noch was: probier einfach alles aus, nich gleich fragen, immer erst probieren
mfG Green
|
|
FlaVa 
      
Beiträge: 21
|
Verfasst: So 21.05.06 19:33
@ green, ja ich seh jetzt wenn ich komplimiere ein weißes feld und den button und das weiße feld hat so ein schrägen strich in der linken oberen ecke.. wie zeichen ich jetzt das Kosystem?
Zuletzt bearbeitet von FlaVa am So 21.05.06 19:35, insgesamt 1-mal bearbeitet
|
|
Green
      
Beiträge: 283
Windows XP Home
Delphi 6 Enterprise
|
Verfasst: So 21.05.06 19:35
^hab ich dir grad geschrieben 
|
|
FlaVa 
      
Beiträge: 21
|
Verfasst: So 21.05.06 19:57
das wird heute nichts mehr... ich muss es wohl aufgeben... danke für eure hilfe, das gibt keine gute note oO danke trotzdem
|
|
Green
      
Beiträge: 283
Windows XP Home
Delphi 6 Enterprise
|
Verfasst: So 21.05.06 20:19
was ist denn dein Problem, schreib doch mal was du bis jetzt hast und was du haben willst, dann kann dir auch jemand helfen
|
|
FlaVa 
      
Beiträge: 21
|
Verfasst: So 21.05.06 21:00
achwas das wird nix mehr... wieder alles zu kurzfristig, brauch das bis morgen... und es sind so lange jetzt eh keine user mehr online die mir helfen könnten... also danke für deine zeit und hilfe 
|
|
Green
      
Beiträge: 283
Windows XP Home
Delphi 6 Enterprise
|
Verfasst: So 21.05.06 21:45
naja ich bin on und hab zeit... also was brauchst du?
|
|