Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-06-2006, 13:46   #1 (permalink)
Neuer User
 
Registriert seit: May 2006
Beiträge: 19
Normalen sin cos und tan berechnen

Huhu! Ich hab mal ei npaar Beiträge durchgeblättert udn werd einfach nicht schlau draus. Es geht darum einen kleinen Physik-Rechner zu programmieren, der aus vom User eingegebenen Werten etwas bestimmtes berechnet. Dafür muss ich aber den sinus, cos und tan wert im Grad- und Nicht im Bogenmaß berechnen können. Aber wie geht das bitte mit Actionscript?

Also dass zb. sin90°=1 ist und nicht 0,xxx
T!nk ist offline   Mit Zitat antworten
Alt 03-06-2006, 14:15   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Hi.

Flash rechnet die trigonometrischen Funktionen in Bogenmaß.
Du mußt die Zahl vorher konvertieren:

var bogenmass = grad * Math.PI / 180;
Math.sin(bogenmass);

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 03-06-2006, 14:17   #3 (permalink)
Neuer User
 
Registriert seit: May 2006
Beiträge: 19
:-* Danke!!
T!nk ist offline   Mit Zitat antworten
Alt 14-08-2008, 17:48   #4 (permalink)
Neuer User
 
Benutzerbild von swiged
 
Registriert seit: Nov 2007
Beiträge: 56
hi,
dazu "direkt" ne frage:

müsste Math.sin(Math.PI)) nicht null ausgeben? nach allem was ich gelernt hab ist sin(180°) nämlich = 0. ich kriege allerdings: 1.22460635382238e-16, was ja shcon nah an null dran ist, aber eben nicht null.

läuft das evtl unter "bugs"???


vielen dank schonmal für die hilfe,

gruß,
swiged
swiged ist offline   Mit Zitat antworten
Alt 14-08-2008, 18:08   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ach ja ... das computer nicht bis auf unendlich viele stellen genau rechnen können hat sich immer noch nicht rumgesprochen?
1.22460635382238e-16
das ist
0.000000000000000122..

und nicht nur computer können das nicht. schreib doch mal 1/7 als dezimalzahl, oder schreib doch mal selbst PI auf. aber bitte exakt! bis zur letzten nachkommastelle - oder hast du auch einen bug und kannst das garnicht ;-)

http://de.wikipedia.org/wiki/IEEE_754
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (14-08-2008 um 18:13 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 14-08-2008, 18:13   #6 (permalink)
Neuer User
 
Benutzerbild von swiged
 
Registriert seit: Nov 2007
Beiträge: 56
vielen dank für die schnelle antwort, und nein, es ist mir nicht neu, dass computer nicht mit unendlich vielen stellen rechnen können. aber ich ging davon aus, dass die Math-funktionen mit einer gewissen rundung arbeiten, wie eben der taschenrechner von win oder so.
ich denke man, man kann diesen "bug" dann mit math.round beheben.

gruß,
swiged
swiged ist offline   Mit Zitat antworten
Alt 14-08-2008, 18:17   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
programmiersprachen machen das nicht selbst, dafür haben sie arbeitssklaven: programmierer

würde die programmiersprachen das selbst machen, dann wäre der fehler grösser.
wann soll was auf- oder abgerundet werden und auf wieviele stellen?
das muss man selbst entscheiden.

genauso obliegt es dem programmierer, dafür zu sorgen, das ein fehler möglichst gering ausfällt. je nachdem, was man braucht bzw. erreichen will.


deshalb z.b., für rechenergebnisse niemals ein x == y verwenden.
wenn, dann mindestens ein x <= y (wenn's so ist)
oder z.b. auf eine tolleranz hin testen
Math.abs(x-y) < 1e-8
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (14-08-2008 um 18:24 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele