Autor Beitrag
GrU3nL!nG
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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:
ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 211

Win 98 SE, Win 2000
D5 Pers, D6 Pers und D7 Pro
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 211

Win 98 SE, Win 2000
D5 Pers, D6 Pers und D7 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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 :lol:

_________________
We are, we were and will not be.
GrU3nL!nG
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 09.03.05 23:15 
-> Kreis gut erkannt ;) das 1.Rästel ist gelöst :D.. 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



BeitragVerfasst: Sa 12.03.05 13:50 
redet jetzt keiner mehr mit mir?? :cry:
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Sa 12.03.05 14:47 
So komisch ist das doch garnicht.
Mach einfach mal Suche in: Delphi-Forum, Delphi-Library 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)