|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.07.2013, 21:15 | #1 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 148
|
из точки А в точку Б
Есть точка А с заданными координатами (x1;y2) и точка Б (x2;y2)
Мне нужно точку А переместить в точку Б. Как мне получить промежуточные координаты движения точки А по прямой к точке Б? То есть через какие координаты должна пройти точка А, двигаясь по прямой к точке Б? Вроде не очень сложная задачка, но чет заступорился я. На любом языке можно, хоть просто формулу с небольшими пояснениями.
МОЙ САЙТ
Компьютер позволяет решать все те проблемы, которые до появления компьютера не существовали. |
26.07.2013, 21:29 | #2 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,603
|
Построим вектор, начало которого точка А, конец - точка Б. Уменьшаем вектор до нужных размеров и, прибавляя его координаты к точке А, находим промежуточные. Чем сильнее "укоротите" вектор, тем больше будет у Вас промежуточных точек.
|
27.07.2013, 00:13 | #3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,304
|
Еще вариант - познакомиться с алгоритмами Брезенхема.
Как-то так, ...
Как-то так, ...
|
27.07.2013, 05:37 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
я, в принципе согласен с предложенными выше вариантами,
хочу от себя 5 копеек добавить... Цитата:
находите разницу между ординатами и абциссами и делите её на количество шагов. Получаете приращение по соответствующим осям. прибавляя приращение, получаете промежуточные координаты. примерно так (на Паскале иллюстрация): Код:
|
|
27.07.2013, 05:37 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
я, в принципе согласен с предложенными выше вариантами,
хочу от себя 5 копеек добавить... Цитата:
находите разницу между ординатами и абциссами и делите её на количество шагов. Получаете приращение по соответствующим осям. прибавляя приращение, получаете промежуточные координаты. примерно так (на Паскале иллюстрация): Код:
|
|
27.07.2013, 06:49 | #6 |
Старожил
Регистрация: 04.02.2009
Сообщений: 18,136
|
Мой вариант: Используя школьный курс математики можно утверждать, что двух координат достаточно для построения уравнения линии вида y=kx+b. Находите коэффииценты и таким образом решение сведется к посту #2. Либо просто в цикле с приращением следуете по данному уравнению.
Нахождение уравнения: http://www.math.by/geometry/eqline.html http://ru.wikipedia.org/wiki/Прямая
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
27.07.2013, 09:32 | #7 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,304
|
Utkin
Цитата:
Не пробовали? Дело в том, что при использовании уравнения прямой вида y=kx+b перемещения точки будут нормально смотреться для перемещений под углом до 45 град. При использовании полярной системы координат ... Надо либо определиться с приращениями [пост 2], но тогда точка А может и не прийти в точку Б точно [потребуются вычисления с вещественными числами и дополнительная коррекция координат на последнем шаге], либо воспользоваться моим замечанием. Как-то так, ...
Как-то так, ...
|
|
27.07.2013, 14:20 | #8 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,639
|
Через уравнение прямой в одном из видов.
Канонический вид: Ax+By+C=0
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
28.07.2013, 23:28 | #9 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 18,136
|
Цитата:
Цитата:
С другой стороны, нечего там робовать. Поскольку уравнение кривой собирается из обоих коорднат, Вы гарантированно попадете в точку Б. Вопрос лишь в том, что считать точкой Б.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
||
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Двигать курсор из точки А в точку Б | bagos | Общие вопросы Delphi | 8 | 20.01.2011 02:06 |
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? | Rin | Мультимедиа в Delphi | 2 | 10.11.2009 22:47 |
даны две точки. организовать движение из точки А в точку Б окружности! | Wi1D | Помощь студентам | 6 | 23.05.2009 19:55 |
tchart - Как при наведении курсора на определенную точку сериэса узнать точку наведения и отобразить её | xaero93 | Помощь студентам | 0 | 22.04.2009 19:28 |
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть | Дикий | Помощь студентам | 7 | 12.05.2008 17:57 |