| Autor |
Beitrag |
GrU3nL!nG
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 07.03.05 08:55
Hi,
ich wollte gerne mit der turtle ein gasteilchen fliegen lassen.
dies geschieht per rondom.
nun möchte ich jeweils die position ausgeben lassen.
wenn ich irgendwo auf dem feld klicke zeigt er mir den x und y wert an.
jedoch nach dem rondom zeichnen habe ich merkwürdige x und y werte^^...
dies ist mein programm code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, UTurtle, Menus;
type TForm1 = class(TForm) Turtle1: TTurtle; Button1: TButton; Edit1: TEdit; Label1: TLabel; Button3: TButton; Label2: TLabel; Timer1: TTimer; MainMenu1: TMainMenu; Datei1: TMenuItem; Neu1: TMenuItem; Beenden1: TMenuItem; Label3: TLabel; Label4: TLabel; Label5: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Neu1Click(Sender: TObject); procedure Beenden1Click(Sender: TObject); private public end;
var Form1: TForm1; a: integer; r: real; r1: integer; r2: integer; w: integer; x: double; y: double;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); begin r:=StrToFloat(Edit1.Text); for a:= 1 to 360 do begin turtle1.Turn(1); turtle1.Draw(r); end; end;
procedure TForm1.Button2Click(Sender: TObject); begin Form1.Close; end;
procedure TForm1.Button3Click(Sender: TObject); begin
for w:= 1 to 5000 do begin r1:=random(361); r2:=random(30); turtle1.Turn(r1); turtle1.Draw(r2); end;
end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Label2.Caption:=FloatToStr(Turtle1.Xpos); Label5.Caption:=FloatToStr(Turtle1.Ypos); end;
procedure TForm1.Neu1Click(Sender: TObject); begin Turtle1.Clear; end;
procedure TForm1.Beenden1Click(Sender: TObject); begin Form1.Close; end;
end. |
|
|
MitschL
      
Beiträge: 211
Win 98 SE, Win 2000
D5 Pers, D6 Pers und D7 Pro
|
Verfasst: Mo 07.03.05 09:17
Hm,
Turtle sagt mir nichts; was ist das? Was machen die Methoden Turn und Draw von Turtle? Was soll eigentlich bei den Buttons 1 und 3 geschehen?
Mach mal bitte etwas hübscher und mit weiteren Infos kann ich dir auch helfen.
gegrüßt!
_________________ "Bloßes Ignorieren ist noch keine Toleranz." (Theodor Fontane)
|
|
GrU3nL!nG
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 07.03.05 09:24
www.lo-net.de/fileex...1377808/install1.htm
da steht einiges über die turtle.
die verschieden butten "malen" verschiedene wege der turtle.
Turn=drechen (0-360°)
Draw=zeichen(bestimmte länge)
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mo 07.03.05 10:13
Mir stellt sich die Frage: Was werden für x/y-Werte angezeigt, was erwartest du in etwa für Werte, und warum sind die angezeigten Werte "komisch"?
_________________ We are, we were and will not be.
|
|
MitschL
      
Beiträge: 211
Win 98 SE, Win 2000
D5 Pers, D6 Pers und D7 Pro
|
Verfasst: Mo 07.03.05 10:21
OK,
dann sieht das für mich so aus, als würde Button1Click die turtle dazu veranlassen, ein 360-Eck zu malen und bei Button 3 eine wirre Linie.
Zuerst würde ich das random mit Randomize() initialisieren. Das solltest du in einem FormCreate.
Aber was sind bei dir merkwürdige Werte? (Ich vermute ja, daß das Ergebnis eines 5000er Turtle-Laufs nicht die Koordinaten brachte, die du mit einem direkten Klick auf jene End-Stelle erhieltest, kann aber nur raten)
Hat sich die turtle aus dem sichtbaren bereich bewegt? Wurde die Zeichenfläche, auf der sich die turtle bewegt, in ihren Dimensionen verändert?
Fragen über Fragen...
gegrüßt!
_________________ "Bloßes Ignorieren ist noch keine Toleranz." (Theodor Fontane)
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mo 07.03.05 10:27
| MitschL hat folgendes geschrieben: | | ...als würde Button1Click die turtle dazu veranlassen, ein 360-Eck zu malen... |
Würde ich auch so sehen. Allerdings würd ich das entstehende Gebilde "Kreis" nennen 
_________________ We are, we were and will not be.
|
|
GrU3nL!nG
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 09.03.05 23:15
-> Kreis gut erkannt  das 1.Rästel ist gelöst  .. nein okay also:
das "Turtle-Feld" = ein Koordinatensytem.
und ich habe ja gesagt (im timer ->der aktualität wegen) das die koordinate x den wert xPOS bekommt. dasselbe mit y.
so wenn ich nun irgend wo in dieses turtle feld klicke, bekomm ich eine normale koordinate (XX|XX).
sobald ich aber random funktion durchführen lasse (wirre linien -> möglicher bewegungsweg eines gasteilchens), dann sieht die koordinate in etwa so aus:
x: -456456456.456456456.456456
y: 346.78678
woran kann dies liegen?!
|
|
GrU3nL!nG
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 12.03.05 13:50
redet jetzt keiner mehr mit mir?? 
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Sa 12.03.05 14:47
So komisch ist das doch garnicht.
Mach einfach mal ROUND() um die Berechnung und schon siehts nicht mehr so lang aus.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|