Autor Beitrag
goscha3000
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 29.11.05 15:09 
hallo ,bin neu hier ,
sitze grad im informatikunterricht und zerbreche mir meien kopf wie ich einen tagesablauf programieren soll.
ich hab eine sonne die im osten (rechts ) aufgeht und dann auf einer kreisgleichung sich bewegt. nacher geht sie wieder rechts auf das alles läuft mit einem timer.aber jetzt soll ich die sonne so programmieren dass es volglich eines tagesablaufes heller bzw dubnkler wird wenn die sonne sich weiter nach westen bewegt und nach einem halbkreis (ost nach westen)zu einem mond wird und das formular soll dunkler werden .
wäre sehr sehr nett von euch wenn ihr mir helfen könntet da ich wirklich nicht weiter weiss.
und hier das was ich bissher geschafft habe=

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:
unit tageszeitenshitte;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg;

type
  TForm1 = class(TForm)
    Button1: TButton;

    sonne: TImage;
    Timer1: TTimer;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
     x : integer;
    y : real;

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled := true;
 x := x-1;
 if x < 120 then x := 600;
 y := 240 - sqrt (240*240-(x-360)*(x-360));
sonne.Top := ROUND (y);
 sonne.Left := x;

end;

end.


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.
Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 29.11.2005 um 15:10
Moderiert von user profile iconChristian S.: Titel angepasst


Zuletzt bearbeitet von goscha3000 am Di 29.11.05 15:15, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 29.11.05 15:11 
Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image klicken und den Titel ändern. Dank Dir!

Viele Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Di 29.11.05 19:13 
Hallo,

oh wie schoen, Farbspielereien:

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:
procedure TForm1.Button2Click(Sender: TObject);
var
  t : TDateTime;
  Anteil,Spannweite,Sockelanteil : double;
  r,g,b,OrgFarbe,
  grundhelligkeit,MaxHelligkeit : integer;

  procedure Tageslauf;
  var
    I,r1,g1,b1 : integer;
  begin
  t := time;
  Spannweite:= (MaxHelligKeit-GrundhelligKeit)/MaxHelligkeit;
  Sockelanteil :=GrundhelligKeit/MaxHelligkeit;
  repeat
    r := random(Maxhelligkeit-Grundhelligkeit)+Grundhelligkeit;
    g := random(Maxhelligkeit-Grundhelligkeit)+Grundhelligkeit;
    b := random(Maxhelligkeit-Grundhelligkeit)+Grundhelligkeit;
    For i := 99 downto 0 do
      begin
      Anteil := i/100*Spannweite+Sockelanteil;
      r1 := round(r*Anteil);
      g1 := round(g*Anteil);
      b1 := round(b*Anteil);
      Form1.Color := (r1*256+g1)*256+b1;
      Form1.Update;
      sleep(20);
      end;
    For i := 1 to 100 do
      begin
      Anteil := i/100*Spannweite+Sockelanteil;
      r1 := round(r*Anteil);
      g1 := round(g*Anteil);
      b1 := round(b*Anteil);
      Form1.Color := (r1*256+g1)*256+b1;//rgb in tColor umwandeln
      Form1.Update;
      sleep(20);
      end;
  until (time-t)*86400 > 20;// 20 Sekunden warten;
  end;
begin
  //Hier passierts
  OrgFarbe := Form1.Color;
  //Tag
  Grundhelligkeit := 130;
  Maxhelligkeit := 255;
  Tageslauf;
  //Nacht
  Grundhelligkeit := 50;
  Maxhelligkeit := 120;
  Tageslauf;

  Form1.Color := OrgFarbe;
  Form1.Update;
end;

Farben werden also mit ihren Anteilen an rot,gün, blau (jeweils möglich0..255) belegt.
Mit einer Grundhelligkeit und ein Maximalhelligkeit.
Noch nicht optimal aber mehr gibt´s jetzt nicht.

Gruss Horst