![]() |
|
![]() ![]() ![]() |
|
СерегаГоляков |
|
|||
![]() Всё супер :) ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.4.2010 Где: НСК Репутация: нет Всего: нет |
Есть две известные точки х0,у0 и х1,у1
Необходимо из х0,у0 попасть в х1,у1, двигаясь змейкой. Максимум на что меня хватило это вычислить угол между точками и горизонталью:
И то вычисляется против часой стрелки, наверно для каждой четверти надо по своему считать. Подскажите формулки, пожалуйста. --------------------
Список всех полезных программ в ОДНОЙ программеhttps://sites.google.com/site/coolprogramms...latnyh-programm...Пьяные белазисты в карьереhttp://www.youtube.com/watch?v=6FGNGMwxJZ4 |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
v=(x1-x0)/(t1-t0); // вычисляем скорость от заданного времени
Alfa=Math.Atan2( y1-y0, x1 - x0); // вычисляем угол поворота. dt=(GetTickCount()-LastTickCount)/1000; // измеряем время, так как оно течёт не равномерно // Вычисляем наши координаты относительно точки старта. p.x=v*dt; p.y=sin(x); Вращаем относительно этой точки Rotate(p,Alfa); // Переносим систему координат из системы объекта в мировую. p.x=p.x+x0; p.y=p.y+y0; t=t+dt; if (t>=t1) { // проверяем время p.x=x1; p.y=y1; } Здесь Rotate(p,Alfa); //Обычное вращение точки относительно начала координат. // Заполняем матрицу вращения M[0,0]=+cos(Alfa); M[0,1]=-Sin(Alfa); M[1,0]=+Sin(Alfa); M[1,1]=+cos(Alfa); // запоминаем временную переменную. tempP=p; // Умножаем матрицу на вектор p.x:=tempP.x*M[0,0]+tempP.y*M[1,0]; p.y:=tempP.x*M[0,1]+tempP.y*M[1,1]; Это сообщение отредактировал(а) Pavia - 2.10.2013, 15:52 |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Задача поставлена как-то некорректно. По двум точкам можно провести чертову уйму синусоидал'ных змеек. Например, прямая, соединяющая 2 точки тоже может быт' описана синусом, но с очен' бол'шим периодом.
Какая змейка нужна-то? -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
Lipetsk |
|
|||
![]() в форме ;) ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 28.1.2009 Где: Липецк Репутация: 2 Всего: 5 |
может быть речь о Естественной параметризации?
|
|||
|
||||
СерегаГоляков |
|
|||
![]() Всё супер :) ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.4.2010 Где: НСК Репутация: нет Всего: нет |
Необходимо постепенно измерять координаты, чтобы в результате переместиться из точки А в точку В двигаясь не по прямой, а красиво змейкой.
--------------------
Список всех полезных программ в ОДНОЙ программеhttps://sites.google.com/site/coolprogramms...latnyh-programm...Пьяные белазисты в карьереhttp://www.youtube.com/watch?v=6FGNGMwxJZ4 |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Ну, есил Вам все равно какая будет змейка, лишь бы красиво, то можно сделать очень просто. Примерно так.
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |