| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как пройти из точки A(x1;y1) в точку B(x2;y2)... |
| Автор: Woody Wood 10.12.2004, 22:49 |
| У меня такая проблема. Есть точка A с координатами x1 y1 мне необоходимо переместить объект (допустим шарик) в точку B с координатами x2 y2 с определенной скоростью (допустим 5 пикселей/сек). Надо найти приращение к координатам (допустим каждую секунду). Неплохо было бы код =). Заранее спасибо. |
| Автор: S.A.P. 10.12.2004, 23:12 |
| Для этого можно составить уравнение прямой, проходящей через 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 10.12.2004, 23:24 |
| Не, не смогу Заранее благодарю. |
| Автор: S.A.P. 10.12.2004, 23:34 |
| Код привести не могу, не помню я эту Дельфу, хоть убей |
| Автор: Woody Wood 10.12.2004, 23:50 |
| Мм, я сейчас попробовал так как ты предложил, но ничего не получилось - стало еще глючнее чем когда я делал по своему методу stepy:=speed; stepx:=(x1-x2)/(y1-y2); x1:=x1+stepx; y1:=y1+stepy; Вроде так. Работало, но глючило. Дело в том, что у меня координаты точки А постоянно меняются мне надо сделать с учетом этого. |
| Автор: dm9 10.12.2004, 23:50 | ||||||
Добавлено @ 23:51
О таких вещах надо говорить сразу Добавлено @ 23:53 Тогда так:
Добавлено @ 23:59 Сорри, я там ошибся выше, сейчас исправил. Забыл прибавить x1 и y1 к новым координатам. |
| Автор: Woody Wood 11.12.2004, 00:00 |
| Я что-то не очень понял, а откуда взять Номер_шага? |
| Автор: dm9 11.12.2004, 00:01 |
| Сначала он ноль, потом каждый интервал времени (1 секунда, например) прибавляешь по единичке |
| Автор: Woody Wood 11.12.2004, 00:05 |
| Мм, походу меня снова не поняли. У меня есть шарик, который должен двигаться со скоростью 5 пикселей в секунду (или кадр например). Он должен двигаться в точку в которой зажата кнопка мыши, причем постоянно. Если вдруг кнопку мыши отпустят, то он должен дойти до точки где она была зажата и остановиться. Если кнопку снова зажмут, то все повторяется. Ясно? |
| Автор: dm9 11.12.2004, 00:12 |
| Надо яснее выражать свои мысли |
| Автор: S.A.P. 11.12.2004, 00:14 |
| Woody Wood короче, я так понял, что тебе надо, чтобы шарик всегода двигался в направлении одной точки с постоянной скоростью? Я тебе завтра код напишу, если подождешь |
| Автор: dm9 11.12.2004, 00:15 | ||
| Нафиг завтра, сейчас будет Добавлено @ 00:23
|
| Автор: dm9 11.12.2004, 00:26 |
| Исправил немного... Добавлено @ 00:27 В смысле, код выше подправил |