Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Урок Геометрии :) (http://www.flasher.ru/forum/showthread.php?t=98609)

Zuben 17.07.2007 15:59

Урок Геометрии :)
 
Народ, подскажите, по какой формуле вычисляется угол между двумя точками с известными координатами. Я всю ночь сегодня голову ломал, графики чертил, выявлял закономерности, но так ничего и не понял.
Без этого, чувствую, 3Д движок создать не удасться.

В школе учился давно и с читами. :(

dedsky 17.07.2007 16:07

для получения этого угла во флеше даже математику знать не надо. Есть такие функции Math.atan и Math.atan2

Double 17.07.2007 16:20

угол между двумя точками?.. это, конечно, очень круто. я себе этого даже представить не могу, не то чтобы вычислить.

Zuben 17.07.2007 16:27

atan2 выдает какие-то странные числа. Что он берет за начало координат?

Код:

var mouseListener:Object = new Object();
mouseListener.onMouseMove = function()
{
    trace(Math.atan2(_xmouse, _ymouse));
}
Mouse.addListener(mouseListener);

Выдает значения от 0 до 1.6.

etc 17.07.2007 16:51

Ну для начала в atan2 первым аргументом идет y, а потом x. Значение выдается в радианах.

Zuben 17.07.2007 17:01

А как переводить радианы в градусы?

__i 17.07.2007 17:21

grad = rad/Math.PI * 180;
но я думаю что даже с этими знаниями тебе не удастся сделать 3д двиг...

Zuben 18.07.2007 15:15

Вложений: 1
Ну почему же? Движок почти собрал. Осталось только узнать, как вычислить координаты точки с известным углом и расстоянием от начала координат.
Может и здесь кто поможет?

На вложенном чертеже зеленым цветом выделены известные значения, а красным - то, что нужно найти.

goarcade 18.07.2007 15:54

x = Math.cos(alpha)*S;
y = Math.sin (alpha)*S;
//S - растояние от начала координат;
//alpha - угол в радианах.

vitlance 19.07.2007 08:59

координаты первой точки x_cord1; y_cord1
координаты второй точки x_cord2; y_cord2

А вот код подсчёта "угла" между ними:

Код:

delta_x = x_cord1 - x_cord2;
delta_y = y_cord1 - y_cord2;
angle = -Math.atan2(delta_x, delta_y)/(Math.PI/180);
trace(angle);


CorC 19.07.2007 10:58

Цитата:

Сообщение от Double
угол между двумя точками?..

Я тоже в шоке, но ему советы дают, значит все таки кое-кто знает, что это за угол и как его искать :)

artcraft 19.07.2007 15:59

каждую точку на плоскости можно описать либо координатами по осям х и у, либо расстоянием от нулевой точки и углом между одной из осей и отрезком соединяющим эту точку с точкой отсчёта

+=Metlio=+ 23.07.2007 18:20

теорема пифагора фсех переживет

Nirth 23.07.2007 19:55

Цитата:

теорема пифагора фсех переживет
Да я просто могу себе представить движок на теореме пифагора, и потрясающую скорость расчетов =)

CorC 24.07.2007 10:25

Цитата:

Сообщение от artcraft
каждую точку на плоскости можно описать либо координатами по осям х и у, либо расстоянием от нулевой точки и углом между одной из осей и отрезком соединяющим эту точку с точкой отсчёта

Это ты про полярные координаты, но про это никто не заикался.

dedsky 24.07.2007 17:29

деревенщина друг друга поняла, а вот профессора озадачены формулировкой :quiet:


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

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