Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463
1

Равномерное движение TShape

26.04.2015, 10:37. Показов 1481. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Появилась проблемка. Есть фигура, которая движется по прямой, задающейся 2 точками. Высчитал приращения, но в 98% случаях приращение является дробным. Для того чтобы фигура двигалась прибавляю к Shape1->Left+=dx и к Shape1->Top+=dy. И проблема в том, что к шейпу добавляются только целые части, то есть если приращение =0.3, то по сути приращения и не будет, если dx(dy)=3.4 каждый раз будет прибавляться только 3. Можно ли как-нибудь это исправить именно для такого варианта ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2015, 10:37
Ответы с готовыми решениями:

Движение TShape вместе с TImage
Изображение движется с помощью мыши. ПКМ ставит TShape на изображении. Нужно что бы при движении...

Движение TShape
Задание: мяч должен отскакивать от стенок формы Код работает, но не могу понять что к чему...

Движение молекул TShape
Здравствуйте,надеюсь,что найду здесь решение моей проблемы. Задача. Нужно разработать модель...

равномерное движение
Вывод формул равомерного.равнопеременного движения

4
случайный прохожий
3030 / 2061 / 626
Регистрация: 20.07.2013
Сообщений: 5,543
26.04.2015, 12:16 2
Заведи переменные типа (static) double, к ним прибавляй dx или dy, потом указывай в качестве координат шейпа значения переменных:
C++
1
2
3
4
5
6
7
  static double my_dx = 0, my_dy = 0;
  double dx = 0.3, dy = 0.3;
 
  my_dx += dx;
  my_dy += dy;
  Shape1->Left = my_dx;
  Shape1->Top = my_dy;
1
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463
26.04.2015, 14:16  [ТС] 3
Пробывал. Получается что, если например координаты шейпа 100,100,то шейп начнёт двигаться с 0,0 , а мне надо, чтобы он начал двигаться с той точки, в которой и находится.
0
случайный прохожий
3030 / 2061 / 626
Регистрация: 20.07.2013
Сообщений: 5,543
26.04.2015, 16:03 4
Лучший ответ Сообщение было отмечено Александр321321 как решение

Решение

А строку
C++
1
  static double my_dx = 0, my_dy = 0;
заменить на
C++
1
  static double my_dx = Shape1->Left, my_dy = Shape1->Top;
не судьба?
1
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463
26.04.2015, 16:51  [ТС] 5
Точно. Спасибо большое, до этого сам не догадался, мало язык ещё знаю, опыта нет
0
26.04.2015, 16:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2015, 16:51
Помогаю со студенческими работами здесь

Прямолинейное равномерное движение
Помогите, пожалуйста, решить задачу! По озеру буксир тянет баржу со скоростью 9 км/ч. Длина...

равномерное прямолинейное движение
Материальная точка движется равномерно и прямолинейно параллельно оси 0х. Направление скорости и...

Равномерное прямолинейное движение
Дали нам вот такие задачи по новой теме. 10 класс 9-ый номер решен. буду рад, если поможете,...

Равномерное движение по окружности
Как смоделировать Равномерное движение по окружности в Qbasic


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru