PDA

Просмотр полной версии : acos, asin, atan?


2K WebStudio
06.10.2003, 20:06
acos, asin, atan?
help читал!
Объясните, как оно действует!
Просто это функция обратная темже, но без приставок?

mishinaelle
06.10.2003, 21:32
да

Пушистик
07.10.2003, 12:00
не это не так уж сложно...даже я понял!:)

это функции, обратные косинусу, синунсу и тангенсу...

ну например:

trace(Math.cos(Math.PI/3));

косинус пи на три буит одна вторая(1/2)...

а чтобы наоборот вычислить сока буит арккосинус одной второй нуна сделать так:

(тока не забывай, что арккосинус вернет угол в радианах, а не в градусах)


// функция для перевода радиан в градусы
function radToDeg(radians) {
result = (radians/Math.PI)*180;
return result;
}
trace(radToDeg(Math.acos(1/2)));


буит 60 (или пи на три)...
с другими функциями также:)

например арктангенс еденицы буит, кажися, 45...


// функция для перевода радиан в градусы
function radToDeg(radians) {
result = (radians/Math.PI)*180;
return result;
}
trace(radToDeg(Math.atan(1)));


и в правду 45:)

opex
07.10.2003, 22:05
вот поюзай (в первый фрейм)

_x = 150;
_y = 150;
createTextField("text", 1, -150, -150, 0, 0);
text.multiline = true;
text.autoSize = true;
text.border = true;
text.selectable = false;
createEmptyMovieClip("strel", 0);
with (_root.strel) {
lineStyle(0, 0x000000, 100);
moveTo(0, 0);
lineTo(0, -50);
}
onEnterFrame = function () {
var x = _xmouse, y = _ymouse;
if (x>0 && y*-1>0) {
i = Math.atan(x/y*-1);
i = i*180/Math.PI;
alf = i;
} else if (x>0 && y == 0) {
alf = 90;
} else if (x>0 && y*-1<0) {
i = Math.atan(x/y);
i = i*180/Math.PI;
alf = 90+(90-i);
} else if (x<0 && y*-1<0) {
i = Math.atan(x/y);
i = i*180/Math.PI;
alf = 90+(90-i);
} else if (x<0 && y == 0) {
alf = 270;
} else if (x<0 && y*-1>0) {
i = Math.atan(x/y);
i = i*180/Math.PI;
alf = 270+(90-i);
}
strel._rotation = alf;
text.text = "Alfa("+Math.ceil(alf)+")"+newline+"X("+Math.ceil(x)+")"+newline+"Y("+Math.ceil(y*-1)+")";
text._x += (x-text._x)/15;
text._y += (y-text._y)/15;
};

2K WebStudio
07.10.2003, 23:16
ясно, спасибо!
Видимо, моя ошибка заключалась в том, что я пытался использовать, получившиеся радианы, как градусы!!!
Вспем спасибо!