0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 25
|
|
1 | |
Работа с графикой21.12.2017, 19:27. Показов 571. Ответов 6
Метки нет (Все метки)
Помогите с простой задачкой , имеем 2 Image или shape которые двигаются по окружности , начерчена конва нашей окружности в крейт форм ( не обязательно ) Можно задавать скорость для каждого объекта движущей по окружности в edit , объекты остановятся проделов полный круг , все это работает по кнопке , что то на подобии игры в гонки чтобы понятней было . Cам с графикой не работал, попытался наткнулся на проблему что с геометрией у меня проблемы. Кому не трудно помогите
0
|
21.12.2017, 19:27 | |
Ответы с готовыми решениями:
6
Работа с 3д графикой Работа с графикой Работа с графикой Работа с графикой |
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 25
|
|
21.12.2017, 19:56 [ТС] | 3 |
Cам пытался реализовать не получилось так как хотел , взял код с программы с реализацией движения по окружности . Но не смог разобраться в чужом коде слишком много разных функций. Прошу кому не трудно реализовать данную программу с более простым кодом (хотя бы с комментариями ) . Просто не хочу сдавать программу с кодом в котором не могу разобраться . Да наверно тут половину тем с попрошайками извините (
0
|
D1973
|
21.12.2017, 20:11
#4
|
0
|
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 25
|
||||||
21.12.2017, 21:27 [ТС] | 5 | |||||
Вот часть кода под спойлером функции отдельно подружаються , Хотел убрать из таймера все и поместить в кнопку , но то тогда элементы стоят на месте . писал Repaint; как то не обнуляет . Потом включал таймер по кнопки , но работает криво . и с конвой что то твориться
Как добавить скорость к объектам представляю что такое для left и top (speed:integer) Shape2.Left := Shape2.Left + Speed; Shape2.Top := Shape2.Top + Speed; speed:=10; Кликните здесь для просмотра всего текста
Добавлено через 15 минут Все точки двигаются хаотично друг другу как их оторвать друг от друга? , при реализации со скорость получается что это расстояние между точками , хотя думал что получится ускорить их( Подскажите ? Добавлено через 20 минут Люди ) Добавлено через 10 секунд хелп
0
|
21.12.2017, 22:15 | 6 |
x := r * cos( a );
y := r * sin( a ); вот и все нужные формулы x,y зависят только от скорости изменения A понятие скорость это величина изменений за единицу времени если мы возьмем угловую скорость, т.е. изменение угла заединицу времени, то формулы будут крайне просты A1 := A1 + speed1; x1 := r1 * cos( A1 ); y1 := r1 * sin( A1 ); аналогично для второго объекта если взять задачу посложнее и задавать линейную скорость вместо угловой, то придется вспоминать формулу длины дуги ))) L = R * A получается, что если мы задали скорость S , а S = L/t то S = R * A / t Отсюда A = S * t / R т.е. A1 := A1 + Speed1 * t / r1 ну а далее по старой схеме набрасывал на глазок. но в целом вроде должно работать т.е. заводим нужные переменные, (формируем модель данных) делаем таймер. в таймере исходный угол увеличиваем на нужную дельту, перерассчитываем все координаты, и перерисовываем по ним картинку все
0
|
Айлурофил
|
|
21.12.2017, 22:54 | 7 |
Ну и ещё лучше угол задавать в градусах, а это значит, что не sin(A1), а sin(A1*PI/180)
0
|
21.12.2017, 22:54 | |
21.12.2017, 22:54 | |
Помогаю со студенческими работами здесь
7
Работа с графикой Работа с графикой в Delphi Работа с графикой в делфи 7 Работа с 2D графикой и анимация Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |