Проблема понимания греха (х) - PullRequest
0 голосов
/ 22 апреля 2011

Эй, выглядывает, Я получил этот код:

red = red + 1;
trace("red: " + red);
trace("Math.sin(red): " + Math.sin(red));
var newRed:uint = Math.abs(Math.sin(red)) * 255;
trace("newRed: " + newRed);

Этот код выводит следующее:

red: 256
Math.sin(red): -0.9992080341070627
newRed: 254
red: 257
Math.sin(red): -0.5733571748155426
newRed: 146
red: 258
Math.sin(red): 0.37963562682930313
newRed: 96
red: 259
Math.sin(red): 0.9835931839466808
newRed: 250

и т.д.

Когда я вставляю sin (257) в калькулятор, я получаю -0,974370064785235, но у Flash появляется -0,5733571748155426

Edit: -

Однако, когда я подключаю sin (256), я получаю одинаковое число от каждого. Это то, что смущает меня.

Я немного озадачен, почему это так. Пожалуйста помоги. Alex

Ответы [ 2 ]

6 голосов
/ 22 апреля 2011

Убедитесь, что вы указали правильный формат входных аргументов.Некоторые могут ожидать, что параметр выражает угол в радианах, а некоторые - в градусах.

http://en.wikipedia.org/wiki/Sine?section=9#Properties_relating_to_the_quadrants

Согласно справочнику Action Script функция sin ожидает параметр как радиан.

3 голосов
/ 22 апреля 2011

Вспышка использует радианы, калькулятор использует градусы.

...