Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Einen Winkel errechnen!? (https://www.delphipraxis.net/41071-einen-winkel-errechnen.html)

Khabarakh 25. Feb 2005 19:13

Re: Einen Winkel errechnen!?
 
Zitat:

Zitat von Khabarakh
Du wolltest, dass der Spieler zum Ziel schaut, wozu veränderst du jetzt dessen Position?

Ich gehe mal davon aus, der Spieler ist dieses blaue Etwas :wink: .

ISAS 25. Feb 2005 20:46

Re: Einen Winkel errechnen!?
 
Also, ich weiss nun, für was das 256 ist. Eine Umdrehung hat nicht 360° sondern 256°

Somit is klar, wiesos nicht funktioniert. Nun nehm ich halt den Winkel, den ich rausbekomme mal 0,711.

0,711 = 256 / 360 /-> Das Verhältnis halt

sniper_w 25. Feb 2005 20:47

Re: Einen Winkel errechnen!?
 
Was mir schon bekannt ist (muss aber nicht richtig sein):
Sin256 sollte ungefäher folgendes machen (99% sicher):
Delphi-Quellcode:
Sin256 := sin( x * pi / (256/2));
Und damit Sin und Sin256 sind nicht gleich. Da sollte auch dein Problem sein.

Zitat:

Und den Sinn hinter einer Addition oder Subtraktion eines Winkel mit 360° entdecke ich auch nicht (eine Funktion, die den Winkel auf 0..359 bringt, hätte ich noch verstanden).
Genau das wird auch gemacht, aber ohne eine neue Funktion zu definieren.

Denn warum das alles ?
Ganz einfach,wiel
Delphi-Quellcode:
 Tan(x) := Tan(180+x);
Deswegen gibt die Funktion ArcTan nicht das gewünschten Resultat. Dieses Resultat muss man später koriegiren, in dem man schaut die Position des Punktes (Tan(x) = Y/X -> Punkt(x,y) ).
Also, pure Triginometrie.

Khabarakh 25. Feb 2005 21:11

Re: Einen Winkel errechnen!?
 
Zitat:

Zitat von sniper_w
Genau das wird auch gemacht, aber ohne eine neue Funktion zu definieren.

Gut, ich habe eher Cos256((Player.Angle-360)*-1) gemeint.
Zitat:

Denn warum das alles ?
:?: Was hat das Folgende mit den 2 Feststellungen von oben zu tun?

sniper_w 25. Feb 2005 21:14

Re: Einen Winkel errechnen!?
 
Zitat:

Gut, ich habe eher Cos256((Player.Angle-360)*-1) gemeint.
Wenn du das gemeint hast, dann ist ja alles ein Misverständniss. :zwinker:

Khabarakh 25. Feb 2005 21:41

Re: Einen Winkel errechnen!?
 
Aber ohne weitere Funktion ist es wirklich besser.
:cheers:

supermuckl 25. Feb 2005 22:04

Re: Einen Winkel errechnen!?
 
du darfst net +200 machen sondern *200

Binärbaum 25. Feb 2005 22:50

Re: Einen Winkel errechnen!?
 
Zitat:

Zitat von supermuckl
du darfst net +200 machen sondern *200

Das habe ich doch schon weiter oben vorgeschlagen (siehe Quellcode). Allerdings hat ISAS das offensichtlich noch nicht geändert.

ISAS 26. Feb 2005 16:46

Re: Einen Winkel errechnen!?
 
Das versteh ich jetzt nicht. Zwar hab ich das Problem jetzt gelöst und es funktioniert einwandfrei, aber wieso *200. 200 Soll nicht der Drehwinkel werden, sondern die Position. Wenn ich nichts hinschreib, dann is der Spieler ja auf (0 / 0). Mit +200 ist er auf (200 / 200)

Binärbaum 26. Feb 2005 17:07

Re: Einen Winkel errechnen!?
 
Zitat:

Zitat von ISAS
Das versteh ich jetzt nicht. Zwar hab ich das Problem jetzt gelöst und es funktioniert einwandfrei, aber wieso *200. 200 Soll nicht der Drehwinkel werden, sondern die Position. Wenn ich nichts hinschreib, dann is der Spieler ja auf (0 / 0). Mit +200 ist er auf (200 / 200)

Mit dem Sinus und Cosinus dazu addiert kommt man doch auch bloß auf Werte im Bereich von 199..201, da Sinus und Cosinus als Wertebereich ja nur das Intervall [-1; 1] haben.
Ich verstehe nicht so richtig, was du sonst mit dem Sinus/ Cosinus bezwecken willst.

MfG
Binärbaum


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 Uhr.
Seite 3 von 4     123 4      

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