Hi
ich möchte den Winkel berechnen, der z.b. zwischen Spieler und einem Objekt spannt.
Ich hab schon die seiten des Dreieckt bestimmt :
int a = cEgo.x - Object[1].X;
int b = cEgo.y - Object[1].Y;
int c = FloatToInt(Maths.Sqrt(IntToFloat(a*a)+IntToFloat(b*b)));
und normalerweise sollt man mit sinus usw den rest bestimmen können...
z.b: sin(beta) = b/c
und dann mit arcsin(b/c) den passenden Winkel?
aber irgendwie haut das bei mir nicht hin....
(und wenn mein Matheprof rausbekommt, das ich mit sowas schwierigkeiten bekomm..... )
winkelberechnung, aber wie? (PROBLEM GELÖST)
- Skyhawk
- Verpackungs-Wegwerfer
- Beiträge: 77
- Registriert: 27.04.2004, 19:40
- Kontaktdaten:
winkelberechnung, aber wie? (PROBLEM GELÖST)
Zuletzt geändert von Skyhawk am 19.07.2005, 15:52, insgesamt 1-mal geändert.
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Re: winkelberechnung, aber wie?
Wie, du weißt nicht mal so was einfaches? Setzen, sechsSkyhawk hat geschrieben:(und wenn mein Matheprof rausbekommt, das ich mit sowas schwierigkeiten bekomm..... )
Vielleicht hilft dir folgende Quelle weiter: http://www.matheboard.de/archiv/thread,2117.htm
Ich kann damit nicht sehr viel anfangen. Ich hab grad mal die Kongruenzsätze für Dreiecke kennen gelernt
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
- Skyhawk
- Verpackungs-Wegwerfer
- Beiträge: 77
- Registriert: 27.04.2004, 19:40
- Kontaktdaten:
hmm, das board hält schon einige sachen parat, und nach
einiger leserei sollte:
float sine= Maths.Sin(IntToFloat(b/c)); (also gegenkath/hyp)
float winkel = Maths.ArcSin(sine);
int winkel2= FloatToInt(Maths.RadiansToDegrees(winkel));
eigentlich stimmen....
nur kommt als winkel immer 0 raus, ausser, wenn
die Spielfigur direkt unter dem Objekt steht.... (a=0)
wobei a gar nicht in die Winkelberechnung eingreift.....
einiger leserei sollte:
float sine= Maths.Sin(IntToFloat(b/c)); (also gegenkath/hyp)
float winkel = Maths.ArcSin(sine);
int winkel2= FloatToInt(Maths.RadiansToDegrees(winkel));
eigentlich stimmen....
nur kommt als winkel immer 0 raus, ausser, wenn
die Spielfigur direkt unter dem Objekt steht.... (a=0)
wobei a gar nicht in die Winkelberechnung eingreift.....
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Problem: a, b und c sind Integer.
c ist die Hypotenuse und somit fast immer größer als b.
wenn a=0, dann ist b=c, in diesem Fall ist b/c=1 und der winkel 90 Grad.
In jedem anderen fall ist aber b<c, weswegen b/c=0 ist (weil es eben integer sind).
Verwende für a, b und c von Anfang an floats.
c ist die Hypotenuse und somit fast immer größer als b.
wenn a=0, dann ist b=c, in diesem Fall ist b/c=1 und der winkel 90 Grad.
In jedem anderen fall ist aber b<c, weswegen b/c=0 ist (weil es eben integer sind).
Verwende für a, b und c von Anfang an floats.
Use gopher repellent on funny little man
- Skyhawk
- Verpackungs-Wegwerfer
- Beiträge: 77
- Registriert: 27.04.2004, 19:40
- Kontaktdaten: