Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Приблизительная касательная к мувику в точке (http://www.flasher.ru/forum/showthread.php?t=88293)

Даня 20.11.2006 21:53

Приблизительная касательная к мувику в точке
 
Тело (body_mc) касается поверхности при падении своими нижними границами в точке (body_mc._x;body_mc_y).Как найти угол касательной к мувиклипу в точке? Я пытался искать приблизительно. Т.е. от данной точки смещал на определённый шаг координату х2, далее отсчитывал нужный н2: начиная с верхней границы мувика
Код:

//Взаимодействие тела с Землёй
function body_interaction(body_mc:MovieClip) {

//получение x1 y1 x2 y2 для построения касательной к точке контакта
//здесь _x=x1, _y=y1
               
if (this.hitTest(body_mc._x,body_mc.getBounds(_root).yMax,true)) {
        body_mc.x2 = body_mc._x+1;
        body_mc.y2 = this.getBounds(_root).yMin;
        //получение y2
            while (!this.hitTest(body_mc.x2,body_mc.y2,true))
                    { body_mc.y2 ++ }
        //изменяем параметры движения тела:
        body_mc.calculate_crTouching();//вычисляем угол касательной
        body_mc.calculate_crBody();//вычисляем угол откражения
}//if
}//body_interaction

т.е. х2 уже определён. Ищу y2... Можно инкрементить его и на более мелкий шаг чем еденица. просто всёравно trace не то выдаёт. Разность trace(body_mc.y2 - body_mc._y); слишком большая.(x2, y2 - это координаты второй точки, и таким образом имея _x _y x2 y2 можно вродебы провести касательную)
потом вдумался - всётаки погрешности слишком большие. Короче помогиет решить проблему. Может у вас свои идею есть?

// Ещё разок попробую пояснить:

Я проверял пока нижняя грань не каснётся поверхности землz
Код:

this.hitTest(_mc._x, _mc._y, true) {
// здесь я брал точку (_x+<шаг>, верхняя граница земли)
//затем инкрементил игрек до хиттеста с землёй (циклом с условием) по второму разу - но
// касательная всёравно глючно как-то выходит...
}

И если шаг взять небольшим - то по логике проведём прямую, близкую к касательной...

iNils 20.11.2006 22:00

3-ий пункт прочтите http://www.flasher.ru/forum/showthread.php?t=79864

Даня 21.11.2006 00:03

Извиняюсь, теперь буду знать


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

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