Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kreis simulation (https://www.delphipraxis.net/96569-kreis-simulation.html)

Christian18 26. Jul 2007 23:32


Kreis simulation
 
Hallo,

ich habe ein kleines neues Projekt, welches simulieren soll, wie sich ein Kreis in verschiedenen perspektiven verhält. Wenn ich einen Winkel von 90 Grad eingebe, dann soll ein Kreis von 100 x 100 Pixel gezeichnet werden. Wenn ich einen Winkel von 45 Grad eingebe, dann soll eine Elipse gezeichnet werden. Ich glaube das mein Problem mehr an der Mathematik gebunden ist. Ich wüsste jetzt nicht wie ich das auf einem Blatt Papier lösen könnte.

Hier nochmal ein anderes Beispiel:

Wenn ich eine Dose habe und 90 Grad zur Deckfläche drauf schaue, dann sehe ich einen Kreis. Wenn ich unter einen anderen Winkel draufschaue, dann wird daraus eine Elipse. Wenn ich wieder in einem anderen Winkel auf die Dose schaue, dann sieht die Elipse noch anders aus.

Das würde ich gerne in meinem kleinen Programm simulieren, bsw. ich muss es machen. :D

Also, wie kann ich das Problem lösen?

MFG Christian18

SnuffMaster23 27. Jul 2007 00:05

Re: Kreis simulation
 
Die Ellipse muss einfach Cos(DegToRad(Winkel)) * Durchmesser breit bzw. hoch sein.
Ich hoff das hilft dir weiter ;)

bitsetter 27. Jul 2007 00:29

Re: Kreis simulation
 
Hi,

ich hoffe mal ich habe mich nicht verrechnet:
Delphi-Quellcode:
var
  h, Grad: integer;
begin
  with Image1 do
  begin
    Grad:= 45;
    image1.Width:= 100;
    Image1.Height:= 100;
    h:= trunc(Height * sin(Grad / 180 * Pi));
    Canvas.Ellipse(0, Height- h, Width, Height);
  end;

SnuffMaster23 27. Jul 2007 14:10

Re: Kreis simulation
 
Doch, ein bisschen hast du dich verrechnet ;)
Cos <> 1 - Sin
Cos² = 1 - Sin²


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 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