LEGO

donni313

Neues Mitglied
Hallo allerseits,

ich versuche gerade, einen LEGO Mindstorms Roboter mit Java zu programmieren. In meinem Programm kommen die folgenden Zeilen vor:

cosalpha=(xkomp1*xkomp2+ykomp1*ykomp2)/(Math.sqrt(Math.pow(xkomp1,2)+Math.pow(ykomp1,2))*Math.sqrt(Math.pow(xkomp2,2)+Math.pow(ykomp2,2)));

alpha=Math.acos(cosalpha);
LCD.drawInt((int)cosalpha, 0, 0);
LCD.drawInt((int)alpha, 0, 1);

Mit LCD.drawInt können Zahlen auf dem Display des Roboters augegeben werden. Die Werte, die für die Berechnung von cosalpha verwendet werden, sind in meinem Programm alle vorhanden und richtig und wenn ich aus ihnen mit dem Taschenrechner cosalpha ausrechne, bekomme ich eine Zahl ungleich 0. Leider berechnet das Programm sowohl für cosalpha wie auch für alpha immer 0.

Ich wäre froh, wenn mir jemand weiterhelfen könnte.
 

donni313

Neues Mitglied
Wenn cosalpha aber 0.123 ist, dann ist alpha=arccos(cosalpha) aber etwa 82 Grad, also etwa 1.5 im Bogenmass. Dann kann die Ausgabe von alpha unmöglich 0 sein.
 

AmunRa

Gesperrter Benutzer
Cosinus Alpha ist eigentlich in jedem Fall immer kleiner als 1 d.h für cosalpha wird immer nach dem cast 0 herauskommen, und wenn alpha auch immer kleiner als ca 60° ist kommt auch dafür immer 0 heraus.

vl rechnest du dir vor der Ausgabe den rad wert von alpha in grad um und bei der ausgabe von cos multiplizierst du z.b vorher nocht mit 1000, so dass du dann vl eine Wert siehst
 

Neue Themen


Oben