![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Woody Wood |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.12.2004 Репутация: нет Всего: нет |
У меня такая проблема.
Есть точка A с координатами x1 y1 мне необоходимо переместить объект (допустим шарик) в точку B с координатами x2 y2 с определенной скоростью (допустим 5 пикселей/сек). Надо найти приращение к координатам (допустим каждую секунду). Неплохо было бы код =). Заранее спасибо. |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 2 Всего: 71 |
Для этого можно составить уравнение прямой, проходящей через 2 координаты:
(y-y1)/(y2-y1)=(x-x1)/(x2-x1) Допустим у тебя 2 точки: A(5;3) и B(8;6); , а текущая x координата 4 (y-3)/(6-3)=(4-5)/(8-5) надеюсь, что Y за знак равенства вывести сможеш |
|||
|
||||
| Woody Wood |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.12.2004 Репутация: нет Всего: нет |
Не, не смогу
Заранее благодарю. |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 2 Всего: 71 |
Код привести не могу, не помню я эту Дельфу, хоть убей
Это сообщение отредактировал(а) Perchilla - 10.12.2004, 23:34 |
|||
|
||||
| Woody Wood |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.12.2004 Репутация: нет Всего: нет |
Мм, я сейчас попробовал так как ты предложил, но ничего не получилось - стало еще глючнее чем когда я делал по своему методу
stepy:=speed; stepx:=(x1-x2)/(y1-y2); x1:=x1+stepx; y1:=y1+stepy; Вроде так. Работало, но глючило. Дело в том, что у меня координаты точки А постоянно меняются мне надо сделать с учетом этого. |
|||
|
||||
| dm9 |
|
||||||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Добавлено @ 23:51
О таких вещах надо говорить сразу Добавлено @ 23:53 Тогда так:
Добавлено @ 23:59 Сорри, я там ошибся выше, сейчас исправил. Забыл прибавить x1 и y1 к новым координатам. Это сообщение отредактировал(а) dm9 - 10.12.2004, 23:58 |
||||||
|
|||||||
| Woody Wood |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.12.2004 Репутация: нет Всего: нет |
Я что-то не очень понял, а откуда взять Номер_шага?
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Сначала он ноль, потом каждый интервал времени (1 секунда, например) прибавляешь по единичке
Это сообщение отредактировал(а) dm9 - 11.12.2004, 00:02 |
|||
|
||||
| Woody Wood |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.12.2004 Репутация: нет Всего: нет |
Мм, походу меня снова не поняли. У меня есть шарик, который должен двигаться со скоростью 5 пикселей в секунду (или кадр например). Он должен двигаться в точку в которой зажата кнопка мыши, причем постоянно. Если вдруг кнопку мыши отпустят, то он должен дойти до точки где она была зажата и остановиться. Если кнопку снова зажмут, то все повторяется. Ясно?
Это сообщение отредактировал(а) Woody Wood - 11.12.2004, 00:07 |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Надо яснее выражать свои мысли
|
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 2 Всего: 71 |
Woody Wood короче, я так понял, что тебе надо, чтобы шарик всегода двигался в направлении одной точки с постоянной скоростью? Я тебе завтра код напишу, если подождешь
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Нафиг завтра, сейчас будет
Добавлено @ 00:23
Это сообщение отредактировал(а) dm9 - 11.12.2004, 00:27 |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Исправил немного...
Добавлено @ 00:27 В смысле, код выше подправил |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |