Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужно нарисовать точку на прямой

EdraHor Знаток (266), закрыт 2 года назад
Есть векторный редактор и список list со всеми точками, которые потом последовательно соединяются линией. Допустим у нас имеется отрезок и мы знаем две его крайние точки, нам нужно навести указатель мыши на этот отрезок и поставить точку между двумя точками отрезка, прямо на отрезок. Нарисовал примерную схему: нужно между A и B кликнуть и точку переместить относительно места клика C прямо на прямую в точку D. Пытался просто искать ближайшее расстояние до одной, нескольких прямых, сравнивать их, но это работает криво т. е. в любом случае если несколько прямых будут близко то такая система посыпется. Пытался сделать через уравнение прямой, но разобраться в его интеграции так и не вышло.
Может подскажите в какую сторону стоит посмотреть или возможно уже есть какие-то примеры?

https://sun9-21.userapi.com/impg/X9OWUZgDHcVore-pOqVccDuzIOOjyi-SdQmcqA/bVR2X0clnrI.jpg?size=334x327&quality=96&sign=dd44bf8e7ebd8b73f5e5466d8cd42740&type=album
Лучший ответ
Иван Чудин Мыслитель (5921) 2 года назад
в свое время я столкнулся с подобной задачей при визуальном формировании графов по диплому товарища и опирался именно на расстояние до прямой. Область +/- 5 точек области рисования считались принадлежащими объекту, менялся курсор при попадании в такую область, отсев происходил по точкам и ребрам (координатам образующих его точек), при работе с подходящими ребрами вычислялись параметры прямой k и b (y=k*x+b) и бралась первая встреченная подходящая прямая, в чью область y+/-5 попадал клик.
Да при большом количестве близких кривых возникнут при таком подходе трудности, и при наличии пересекающихся отрезков вблизи области пересечения, но в вашем случае - случай векторного редактора, это решается зуммированием. Хотя точка пересечения остается проблемой.
Остальные ответы
Mashka (кр) Искусственный Интеллект (310148) 2 года назад
Координаты центра отрезка это [(x1+x2)/2;(y1+y2)/2]
V H Гуру (4252) 2 года назад
чувак, диаметр точки чего не указал? Вишь, народ и потерялся.
xaimzona Ученик (192) 2 года назад
так рисуй если надо
че ты от меня хочешь то
Похожие вопросы