Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   acos, asin, atan? (http://www.flasher.ru/forum/showthread.php?t=49980)

2K WebStudio 06.10.2003 20:06

acos, asin, atan?
 
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

ясно, спасибо!
Видимо, моя ошибка заключалась в том, что я пытался использовать, получившиеся радианы, как градусы!!!
Вспем спасибо!


Часовой пояс GMT +4, время: 01:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.