Здравствуйте!
Встала такая задача: Нужно, чтобы шарик двигался по траектории пятиконечной звезды! Я думаю найти две координаты противоположных вершин звезды (через одну вершину, если идти по кругу), записать для них уравнение прямой, ну и потом меня значение переменной заставляем двигаться шарик, соответственно получаем 5 уравнений движения и просто чередуем их при движении.
Может возможен более простой алгоритм решения?
X0R 23:42 17.12.2010
Вычислить координаты 5 точек и вместо 5 уравнений написать функцию, которая будет принимать координаты 2-х точек и номер шага между ними.
BSk 00:14 18.12.2010
Сообщение от X0R:
Вычислить координаты 5 точек и вместо 5 уравнений написать функцию, которая будет принимать координаты 2-х точек и номер шага между ними.
Проблема не заключается в нахождении вершин звезды, проблемма в том что шар каким то алгоритмом нужно доставить из точки А в точку B.
Катя. 00:17 18.12.2010
BSk,
(x-x1)/(x2-x1)=(y-y1)/(y2-y1)
уравнение прямой между двумя точками. весь алгоритм - засунуть в нее две точки, изменять х на шаг и получать значение y.
BSk 03:12 18.12.2010
Катя., Спасибо.
Ну теперь остановилось за малым, определить при каком условии менять знак у X и Y при переходе от одной вершины к другой.
Xenon 10:07 18.12.2010
Сообщение от BSk:
определить при каком условии менять знак у X и Y при переходе от одной вершины к другой
Может если шарик достиг координат вершины, то он меняет направление движения?
Snusmumrik 10:11 18.12.2010
Сообщение от Xenon:
Может если шарик достиг координат вершины, то он меняет направление движения?
я бы ввел окрестность вершины. т.к. если брать переменные с плавающей точкой, шарик никогда не достигнет вершины.
окрестность можно взять численно равной радиусу шарика) хотя.. не, не в этом случае. Вот если бы он от стенок экрана отскакивал-тогда да..
Part!zan 12:23 18.12.2010
Сообщение от Катя.:
засунуть в нее две точки, изменять х на шаг и получать значение y
Движение будет неравномерное или надо каждый раз разный шаг задавать.
BSk 12:26 18.12.2010
Xenon, Snusmumrik, Вы немножко не о том говорите, стоит ли отталкиваться от точки, можно судить по deltaX и deltaY.
BSk 12:33 18.12.2010
Сообщение от Part!zan:
Движение будет неравномерное или надо каждый раз разный шаг задавать.
В моем случае о равномерности движение речь особо не идет, главное чтоб оно было прямолинейное.
The_God 15:01 18.12.2010
Xa Ya - координаты А
Xb Yb - координаты B
k - меняеш от 0 до 1
получаеш координаты между А и B
X = Xa*(1-k) + Xb*k
Y = Ya*(1-k) + Yb*k
Part!zan 15:12 18.12.2010
Сообщение от BSk:
В моем случае о равномерности движение речь особо не идет, главное чтоб оно было прямолинейное.
Тогда никаких проблем нет: координаты вершин известны, уравнение прямой есть.