erstmal danke für eure Hilfe. meine Prozedur sieht jetzt so aus:
Delphi-Quellcode:
procedure TVektor.setzewinkel(alpha:double);
begin
if alpha <= 0 then alpha:=360+alpha;
x1:=cos(degtorad(alpha))*giblaenge;
x2:=sin(degtorad(alpha))*giblaenge;
end;
meine Prozedur gibwinkel sieht so aus:
Delphi-Quellcode:
function TVektor.Gibwinkel2;
begin
if x2 >= 0 then result:=radtodeg(arccos(x1/giblaenge))
else result:=360-radtodeg(arccos(x1/giblaenge))
end;
Generell funktioniert das ganze auch. Zumindest ungefähr. Ich mache nun bei meinem kleinens SPielchen folgendes:
Delphi-Quellcode:
kanone.vrohr.setzewinkel(45);
showmessage(floattostr(kanone.vrohr.gibwinkel));
Ich setze den Winkel also auf 45 Grad und lasse ihne sofort danach ausgeben. Heraus kommt aber nicht 45 ° sondern
~50,76. Durch diese UNgenauigkeiten wird alles ziemlich unschön. Ich arbeite aber überall mit doppelter Genauigkeit. WIe kann ich da wo etwas verbessern? Ich danke schonmal im vorraus