| Autor |
Beitrag |
kasi159
      
Beiträge: 28
|
Verfasst: Fr 05.11.04 20:44
Hallo ersmal
Ich soll ein programm machen des den sonnenaufgan nachahmt also dass heißt die sonne soll wieder untergehen und der mond soll kommen und das ganze mit einem timer und halt den beiden images is ja erstaml nicht so schwer aber bvei mir kommt die sonne nich wieder runter!!!!
ich hab volgenden code bis jetzt
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Timer1Timer(Sender: TObject); begin Sonne.Left := sonne.Left +10; sonne.Top := sonne.Top -10; if (sonne.Top < 48) or (sonne.left > 310) then begin sonne.left := sonne.left +10; sonne.top := sonne.top +10 end end;
end. |
soo aber es kommt halt wie gesacht nich runter so wie es jetzt is bleibt das image auf top = 48 und fährt nur nach links aber nicht nach unten. Ich kann mir nich mehr helfen
ich hab das project auch ma auf webspace gezogen people.freenet.de/ka...59/sonnenaufgang.rar
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt.
Moderiert von Christian S.: Titel geändert und korrekten Link eingefügt
|
|
Calyptus
      
Beiträge: 386
Win Xp Prof
D3, D6 Pers, D7 Ent
|
Verfasst: Sa 06.11.04 13:01
Tipp von mir: Hol dir 100 MB Webspace um sonst bei www.100Mb4free.de
Dann lad dir noch cuteFTP und du kannst dein zeug problemlos hochlanden!
Für die Sonne: Probs mal mit Sinus und Cosinus!
_________________ Luft- und Raumfahrtechnik an der Uni Stuttgart
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Sa 06.11.04 13:37
Zum ursprünglichen Problem: Versuch doch die Bewegung der Sonne, bzw. des Mondes durch eine Sinus-Funktion zu beschreiben. Wenn du dir dann die richtige raus suchst, sollte das ganz einfach gehen!
Gruß Hape!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
kasi159 
      
Beiträge: 28
|
Verfasst: Sa 06.11.04 15:27
sinus cosinus?????? mach mich net fertig so was gibbet bei delphi?????
ja keine Ahnung vergesst bitte nicht dass ich mich grad ers mal nur einen MOnat mit Delphi beschäftige...
Achso thx für den tipp mit dem webspace... mach ich jez grad ma und dann lad ich es neu hoch!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 06.11.04 15:53
Ich habe das mit Delphi Suche nach "Kreis beschreiben" gefunden:
| DaRkFiRe hat folgendes geschrieben: | In nem Kreis mit dem Radius r ist der Punkt P (x,y) zum Ursprung O(xo,yo) mit dem Winkel w (in Grad° ) durch folgende Funktionen definiert:
x = xo+sin(w*pi/180)*r
y = y0+cos(w*pi/180)*r
Und somit lässt sich mit jedem 0<w<360 ein Kreis mit dem Radius r beschreiben. |
Ich vermute, dass man den Winkel einfach um 1 erhöhen muss. Ich werde mal verscuhen das in dein Projekt reinzubauen... mal sehn... wenn ich Fertig bin gibz von mir nen Post.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
kasi159 
      
Beiträge: 28
|
Verfasst: Sa 06.11.04 16:00
hä kreis?????? ichwed nich mehr versteh ich net mann kann auch nen kreis beschreiben??? Ich denke dass es im MOment darin liegt das es mit den Koordinaten nich hinhaut wo es wieder runterkommen soll!!!!!!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 06.11.04 16:01
Schreib mal das in deinen Timer rein:
Delphi-Quelltext 1: 2: 3: 4:
| sonne.Top := round(200+sin(w*pi/180)*100); sonne.Left :=round( 200+cos(w*pi/180)*100); inc(w); if (w>360)or(w<180) then w:=180; |
den mittelpunkt habe ich mit 200,200 gewählt. der Radius ist 100.
Die sonne beschreibt einen Halbkreis und fängt dann wieder von vorne an.
Ich hoffe ich konnte helfen 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 06.11.04 16:08
Hallo!
Ich habe diesen Thread mal ein wenig "in Form" gebracht. Das heißt, ich habe den Link oben eingefügt, den Titel geändert und alle Postings, die sich mit diesen beiden Sachen beschäftigten, entfernt.
MfG
Christian
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
kasi159 
      
Beiträge: 28
|
Verfasst: Sa 06.11.04 16:28
ja danke für in Ordnung bringen sag mal woher weißt du wie kang der radius und so sein muss???
|
|
kasi159 
      
Beiträge: 28
|
Verfasst: Sa 06.11.04 16:40
geht net!!!
undefinierter Bezeichner w in der zeile sonne.Top := round(200+sin(w*pi/180)*100);
und vorzeichenbehaftete und -lose typen werden verglichen - beide operatoren werden vergliche hier: if (w>360)or(w<180)
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Sa 06.11.04 16:42
| Zitat: | Die sonne beschreibt einen Halbkreis und fängt dann wieder von vorne an.
Ich hoffe ich konnte helfen |
@JayEff: Deine Sonne scheint wohl nach dem gelben Punkt keine Lust mehr zu haben und rechts abzubiegen
AXMD
|
|
kasi159 
      
Beiträge: 28
|
Verfasst: Sa 06.11.04 16:47
bei mir funzt das teil gar nich erst!!!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 06.11.04 17:10
@amxd: ...hä?
@kasi159: lol. versuch mal w als Globale integer Variable zu deklarieren.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| private public end;
var Form1: TForm1; w:integer; implementation
{$R *.dfm}
|
Wenn du dem Compiler nicht sagst, was "w" ist, dann weiß er es auch nicht 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 06.11.04 17:14
-.- schon schön blöde dass man Beiträge nicht editieren kann.
Woher ich weiß, wie gros der Radius und wo der Ursprung sein sollen? Ich hab - rate mal - geraten. einfach zufällig nen Wert genommen. Ausserdem kann man sich das in etwa denken: der punkt 200,200 liegt auf der form von der oberen linken ecke 200 pixel nach unten und 200 pixel nach rechts. und den Radius: wenn ich 10 als radius nehme, dann kommt ein kreis raus, der kleiner ist als ein "o". wenn ich 10000 nehme, dann geht der Kreis weit über die Form hinaus. ein guter Kompromiss sind doch da 100 Pixel Radius. 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
kasi159 
      
Beiträge: 28
|
Verfasst: Sa 06.11.04 17:30
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 06.11.04 17:34
w ist ein wert der von 180 bis 360 immer wieder um 1 erhöht wird! er wird sowieso festgesetzt! ich werde mal die gesammte Unit posten.
w ist auch bei mir nichts als eine Globale Variable.
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type TForm1 = class(TForm) Mond: TImage; Sonne: TImage; Button1: TButton; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private public end;
var Form1: TForm1; w:integer; implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject); begin sonne.Top := round(200+sin(w*pi/180)*100); sonne.Left :=round(200+cos(w*pi/180)*100); inc(w); if (w>360)or(w<180) then w:=180; end;
end. |
Weitere Erklärungen gebe ich dir auch gerne über Skype, Teamspeak2 (beides Sprachprogramme, durch die ich mit dir reden könnte) oder ICQ bzw MSN.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|