PDA

View Full Version : sinus und cosinus


Almresl
21-05-2002, 19:58
wahnsinn...langsam wird das vielleicht doch keine nullpunkte runde.
mein programm schafft schon spieglung.
allerrdings kann es die drehung nicht.
wie funktioniert das mit sinus und cosinus??

man muss bei meinem den winkel als integer zahl einlesen.
die formel geht dann so:

xneu = x*(cos(Winkel)+sin(Winkel);
yneu = y*(-sin(Winkel)+cos(Winkel);

allerdins kann er das nicht rechnen. er schreibt mir schon beim compilieren cannot resolve problem.
die java.lang.* hab ich auch importiert....

Zentor
21-05-2002, 20:24
Also, java.lang ist die Elternklasse aller Klassen und diese erben deren Methoden weshalb du es nciht extra noch importieren brauchst. Die sin und cos Funktion erreicht man über Math.sin() und Math.cos(). Weiters kann ein expliziter cast vor Winkel nciht schaden (sollte auch ohne gehen aber sicher ist sicher)

xneu = x*(Math.cos((double)Winkel)+Math.sin((double)Winke l);
yneu = y*(-1*Math.sin((double)Winkel)+Math.cos((double)Winkel );

Falls bei dir Winkel noch nicht in Radiant vorliegt solltest du ihn schon vorher mit
double Winkel2 = (double)2*Math.PI/((double)Winkel*(double)360)
errechenen.
mfg Zentor

ps k.a. ob deine Formal stimmt, aber das musst du ja selber wissen.

Almresl
21-05-2002, 21:45
meine formel stimmt....
ich hab das gleich gestestet
allerdings schreibt er mir beim compilerien...

possible loss of precision
found: double
required: float

xneu und yneu sind als float deklariert. wie bekomme ich sie eigentlich so, dass sie genau drei nachkommastellen besitzen??

lifelikebmx
21-05-2002, 22:15
bei der ausgabe mit printfixed aus der eprogio, intern rechne halt so genau wie möglich/nötig um fehler zu vermeiden->grundzüge der informatik ( fließkommazahlen )

Almresl
21-05-2002, 22:20
ja cool. das mit dem printFixed hab ich auch gerade gefunden und anwenden wollen
schreibt mir aber cannot resolve problem
na toll...

lifelikebmx
21-05-2002, 22:51
hast du die eprogio importiert?

import EprogIO;

...
...

EprogIO.printFixed(wurst);

...

Almresl
21-05-2002, 23:09
ja sicher. das steht gleich in der ersten zeile...import eprog.*;
das ist mir echt schleierhaft...es steht sogar im skript...ich check nicht, warum da nicht geht....

lifelikebmx
21-05-2002, 23:46
oh sorry import eprog.* .. ich mach grad wenig mit java,
entweder du leitest deine klasse wie es in eprog unschöner weise gemacht von EprogIO ab [class blabla extends EprogIO]
oder du sprichst die methoden mit dem classennamen an
EprogIO.printFixed(...); das muss einfach funken..

Almresl
21-05-2002, 23:50
so dumms klingt
ich hab schon alle versionen versucht
mit extends EprogIO usw.
ein normales println funktioniert ja! aber da hab ich dann nur eine oder mehr kommastellen
ich brauch ja nur drei...

Almresl
21-05-2002, 23:58
ok, ich habs hinbekommen. so einfach und ich depp bin nicht draufgekommen.

printFixed(xneu); printFixed(yneu);
dann gibt er mir z.B. aus: 2.0003.000
ich brauch aber allerdings einen Abstand zwischen diesen beiden Zahlen....

Almresl
22-05-2002, 00:02
so dumms klingt. aber kaum hab ich den antworten button geklickt, ist mir eine möglich lösung eingefallen....
kann man das sagen:

printFixed(xneu); println(" ");printfixed(yneu);

funktionieren tuts!!!!

DoomedOne
22-05-2002, 00:07
ja so passts und ich sag ja so schwer is das nicht :)

Almresl
22-05-2002, 00:30
uiui, ich sags euch
jetzt sitz ich schon den ganzen tag und bastle wie deppert.
das programm berechnet wie gewünscht...nur ein haken noch zu lösen
hat jemand das programm schon mal gemacht? dann wärs einfacher...

DoomedOne
22-05-2002, 00:34
ich glaub das ist in diesem semester neu dazugekommen, sry
aber kannst dann das fertige prog posten?
würd mich interessieren wie das gelöst wird.

P.S: Nur durch das basteln bekommt man erfahrung, wirst sehen nach eprog bistn profi :D

Almresl
22-05-2002, 00:44
ich glaub auch.
ich hoffe, dass ich dieses letzte problem mit der eingabe morgen gelöst habe...dann post ichs.
ansonsten glaub ich bin ich von den 0 Pkten schon weg....

Almresl
22-05-2002, 15:36
Juhu! Hab die dritte Runde mit 9.3 Puntken von 15 rumgebogen. Die Fehler liegen eh bei Dingen, die ich vorher gewußt habe...macht ja nix...
danke an alle, die mir tipps gegeben haben.