last day (16 days later) » 

10:23 AM
6
A: Как примагнитить точку к линии?

Stranger in the QВот алгоритм работающий через предварительный перебор точек с большИм шагом и последующий поиск в пространстве рядом с найденной точкой, с уменьшением шага. Этот метод подойдет когда кривая, до которой необходимо искать кратчайшее расстояние, меняется со временем. Производительность можно силь...

 
Работает просто супер! Но мне хочется понять, как это работает. Дайте пожалуйста, хотя бы минимальные комментарии по функции closestPoint.
 
она перебирает точки на линии при помощи бинарного поиска, и сравнивает расстояние до них, от курсора...
@Leks координаты мыши, во время порождения события
 
@StrangerintheQ а вы сознательно не ставите ; или просто забываете?
 
@doox911 когда не в браузере пишу и ide подсвечивет - стараюсь ставить, но без фанатизма, иногда для удобства копирования не ставлю, иногда потом расставляю пропущенные, по настроению
Все координаты надо пересчитывать с учетом масштаба, попробуйте всегда показывать найденную точку...
 
@StrangerintheQ, а при зуме не работает, подскажите, как сделать чтобы считалось корректно (я про p.distance?)
 
10:23 AM
@doox911 я уже завтра Вам отвечу, хорошо?)
 
@StrangerintheQ, спасибо, буду ждать.
@StrangerintheQ, я так понимаю тут тоже коэффициент необходимо использовать? Так как я над линией, а дистанция говорит: 78.57143261216045
 
@doox911 Я изменил ответ, там фокус с pt.matrixTransform, масштабирование колесом
@Demon__ANT вы про какую часть конкретно, алгоритм поиска или трансформация точек?
@Demon__ANT комментирую, когда есть время и когда попросят, вот сейчас например:)
@Demon__ANT это наверное от привычки ковырятся в исходниках, я сам познаю это чаще через код, ибо частенько кроме него ничего больше нет
@Demon__ANT постарался немного описать происходящее, спрашивайте если не понятно.
 
@StrangerintheQ Вы мой кумир)
 
@Demon__ANT да ладно Вам, уверен что полно тут талантов, 90% из них просто ничего не пишут, только читают, сам в засаде сидел 3 года, не меньше, активно отвечать начал только недавно, когда под новый год AlexandrTT конкурс поо елочку сделал. сейчас посмотрел у меня за весь период с момента регистрации было 100 ответов, до начала 2019 сейчас 702
@doox911 Я обычный программист, просто уже давно. Вы даже представить себе не можете на сколько огромная пропасть между мной и теми у кого я пытаюсь учиться.
 
@StrangerintheQ, а d3 как масштаб учесть? А то точка вылетает за пределы) ibb.co/8XG5zhx
 
10:23 AM
@doox911 лучше ссылкой на кодепен
 
@doox911 Вы добавляете точку в слой, у которого стоит translate(50,50), необходимо это учитывать
 
@StrangerintheQ, странно, я делал translate(50,50), а чтобы вернуть кружок в центр вычитаю 53, почему? И у меня не получается замкнуть путь. Как после добавления точек дописать команду Z?
Так же заметил, что при большом увеличении кружок прыгает (перемещается не равномерно). это связанно с тем, что расстояние между точками меньше пикселя?
 
да, алгоритм тоже надо подкручивать с учетом масштаба
 
Т.е просто вычесть смещение не корректно?
 
10:38 AM
там точность начинается с 8 пикселей и есть максимальный порог, их нужно тоже делить на значение зума
это чтобы не прыгала точка
 
Мне в принципе такая точность не нужна)
Так интересно стало
Вопрос ещё в том, что вычитаю то я 53, хотя смещал на 50.
Протестил с радиусом он не влияет
Да и дистанция на масштабе хромает)
 
10:55 AM
///////////
вот такие строки вставил там где менял
 
11:06 AM
смотрите пример, я подкрутил винтики
 
Рамка дала три пикселя)))
 
обновил
 
Там ещё прикол))))
 
вот я как то делал да не доделал рисовалку на d3 для проекта одного
 
При большом увеличении фигура вообще пропадает)
Кнопки не работают?) Или я не правильно жбакаю?
 
 
2 hours later…
1:01 PM
Ещё один момент, в левом нижнем углу кружок прыгает
Наверно это связано с тем что метод d3 не дорисовывает замыкание?
 

  last day (16 days later) »