Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2015, 05:56   #1
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию Из точки А в точку Б

Вопрос по графике. Требуется алгоритм к такой задаче:
1. Есть 2 точки А (х1, у1) и Б(х2, у2)
2. Есть процент пройденного пути. 0% это х1, у1, 100% это х2, у2
3. Необходимо вычислить координаты пути на прямой АБ, зная сколько процентов пути пройдено.
4. Путь определен прямой проходящей по точкам А и Б.
Собственно ничего умного вычислить не получилось. Пытался пропорционально считать зная уравнение для вычисления расстояния между двумя точками, но там квадратичная зависимость и потому результат оказался не торт. Очевидно надо еще как-то учитывать уравнение прямой, но вот как не разобрался.

ЗЫ. Координаты только положительные.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.02.2015, 07:47   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Бинарный поиск в помощь
Poma][a вне форума Ответить с цитированием
Старый 10.02.2015, 07:50   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Бинарный поиск в помощь
А просто формулами вычисляемо? Ну то есть как в геометрии - вывели и получили координаты нужной точки.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.02.2015, 07:57   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А откуда там квадратичная зависимость? Уравнение прямой свести к виду y=ax+b. Вычислить x исходя из пропорции, из уравнения y, результаты округлить. Бинарный при чем? Уравнение вообще может быть таким, что прямая ни через одну целую координату не проходит между заданными точками. Например {4,10} и {100,11}
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2015, 08:00   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
А откуда там квадратичная зависимость?
Расстояние между двумя точками. Я пытался пропорционально уменьшать расстояние и зная начальные координаты пытался получить конечные.
Цитата:
Уравнение прямой свести к виду y=ax+b. Вычислить x исходя из пропорции, из уравнения y, результаты округлить.
Спасибо, попробую.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.02.2015, 08:01   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы попробовал найти коэффициент "к" на координатах, и уже считать его процентную составляющую.

P.S. Аватар опередил
I'm learning to live...

Последний раз редактировалось Stilet; 10.02.2015 в 08:05.
Stilet вне форума Ответить с цитированием
Старый 10.02.2015, 08:03   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Я бы попробовал найти коэффициент "к" на координатах, и уже считать его процентную составляющую.
Я плохо представляю как это получится, но предполагаю, что коэффициент к не изменяется на всем участке от А до Б. Речь ведь о у=кх+b?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.02.2015, 08:06   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Речь ведь о у=кх+b?
Угу. О нем родимом. Ну Аватар более верно выразил мою мысль.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2015, 08:07   #9
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Нужно решить всего то 2 квадратных уравнения. Смотри. Для начала вычисляем длину отрезка L=корень(квадрат(х2-х1)+квадрат(у2-у1)). Вычисляем процент от L, допустим равен N. Получаем N=корень(квадрат(х3-х1)+квадрат(у3-у1)), где x3 и у3 координаты новой точки. N возведем в квадрат чтобы убрать корень, обозначим результат как M. Отсюда получаем два квадратных уравнения (a*квадрат(x)+b*x+c = 0)
квадрат(х3)-2*х1*х3-M = 0
квадрат(y3)-2*y1*y3 = 0
х1 и у1 мы знаем, осталось найти х3 и у3.

Это если о квадратах что в первом посте. Возможно я и не прав, и это будет только частное решение ... но пока лучше придумать не смог.

Последний раз редактировалось Simply-Art; 10.02.2015 в 08:46.
Simply-Art вне форума Ответить с цитированием
Старый 10.02.2015, 09:06   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Это если о квадратах что в первом посте. Возможно я и не прав, и это будет только частное решение ... но пока лучше придумать не смог.
Я так и хотел . Чего-то где-то затупил и получилась фигня. Вообще плохо понимаю, рисовал клеточки в Экзеле, то получается, то нет.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделить найденный тест с точки А в точку Б Paskal1 Общие вопросы Delphi 2 04.07.2014 22:55
Поиск оптимального пути из точки A в точку Б spirit-ua Общие вопросы Delphi 5 14.02.2014 13:36
из точки А в точку Б xDyPx Помощь студентам 8 28.07.2013 23:28
Двигать курсор из точки А в точку Б bagos Общие вопросы Delphi 8 20.01.2011 02:06
даны две точки. организовать движение из точки А в точку Б окружности! Wi1D Помощь студентам 6 23.05.2009 19:55