AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kreisbahn um Objekt

Ein Thema von Delphi-lerner · begonnen am 17. Mai 2003 · letzter Beitrag vom 17. Mai 2003
Antwort Antwort
Delphi-lerner

Registriert seit: 8. Mai 2003
16 Beiträge
 
#1

Kreisbahn um Objekt

  Alt 17. Mai 2003, 09:18
Guten morgen....

ich hab mal wieder ein Problem:

Ich möchte eine Kreisbahn darstellen. Diese Kreisbahn soll in einer Procedure stehen und um ein Objekt liegen...(die Sonne).

Ich hatte schon mal angefangen nur irgendwie fehlt mir etwas, damit es auch eine Kreisbahn wird:


Delphi-Quellcode:
procedure erdbahn(x,y: integer);
var i: integer;
    wi: real;
begin
  for i:=1 to 180 do
  begin
    wi:=pi/180;
    x:=round(i*cos(wi));
    y:=round(i*sin(wi));
   form1.Canvas.Pixels[x,y]:=clgreen;
  end;
end;
Delphi stellt immer ein Strich dar und keine Kreisbahn. X soll den Wert 240 und Y 120 sein. Das sind die einzigen Vorgaben.

Danke im Voraus für eure Hilfe.

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#2
  Alt 17. Mai 2003, 09:38
1. Irgendwie fehlt in den Formeln ein Radius, oder?
2. wi ist immer das Gleiche (daher wohl auch der Strich) und außerdem noch in Grad. sin und cos erwarten einen rad-Wert.

MfG,
Peter
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Delphi-lerner

Registriert seit: 8. Mai 2003
16 Beiträge
 
#3
  Alt 17. Mai 2003, 09:51
und was müsste ich da jetzt verändern??
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#4
  Alt 17. Mai 2003, 09:57
So sollte es gehen:
Delphi-Quellcode:
procedure erdbahn(x0,y0,r: integer);
var grad,x,y: integer;
    phi: real;
begin
  for grad:=0 to 359 do
  begin
    phi:=180/Pi*grad;
    x:=round(r*cos(phi))+x0;
    y:=round(r*sin(phi))+y0;
    form1.Canvas.Pixels[x,y]:=clgreen;
  end;
end;
x0 und y0 sind dabei der Mittelpunkt der Kreisbahn und r der Radius. Der Rest sollte klar sein.

MfG,
Peter

//Edit: Du könntest vielleicht noch einen Parameter "Canvas" einführen, bei dem Du angibst, wo Du zeichen möchtest. Dann wäre es nicht auf Form1.Canvas beschränkt.
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Delphi-lerner

Registriert seit: 8. Mai 2003
16 Beiträge
 
#5
  Alt 17. Mai 2003, 10:11
danke für die hilfe....jedoch soll es in form1 gezeichnet werden
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#6
  Alt 17. Mai 2003, 10:20
Mir ist noch was eingefallen: Du solltest Dir überlegen, ob Du "grad" nicht als Realwert deklarierst und in einer while-Schleife in kleineren Schritten erhöhst. Eine Genauigkeit von 1° (wie sie ja jetzt da steht) wird bei größeren Kreisen keine durchgezogene Linie mehr ergeben!
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz