Посмотрите на polyline.PointToScreen и PointFromScreen, таким образом вы сможете иметь точки p = мышиные координаты относительно полилинии (0, 0).
Затем вам нужно будет вычислить проекцию p на каждый сегмент полилинии.
совет: для вычисления P»= проекция Р на сегменте S (P1, P2)
- Compute линия L1 определяется Р1, Р2
- вычислить линия L2, которая является перпендикулярной к L1, который идет через P
- вычислить пересечение P 'из L1 и L2
- , если Р' между P1 и P2: остановка
- еще, если нет: если DIST (P1P ') < DIST (P2P'): множество Р» = P1 и останов
- еще: множество P «= P2 и остановить
и, проходя через все сегменты полилинии S, держать всегда в Р», где расстояние (PP ') является минимальным.
Наконец: установите положение мыши на P '.
Таким образом, вы всегда будете размещать мышь точно на полилинии.
- по желанию: если вы хотите только Y мышей следовать полилинии, установите только мыши Y для P'.y
Вы можете показать свой кусок кода, если все еще застряли, так что я мог покажите вам более точно.
рафинированного ответ для поиска только от горизонтальной линии:
- получить мышь xCoord
- Еогеаспа сегмент полилинии
- Если мышь xCoord между сегментом концов затем вычислить пересечение между сегментом и вертикальной линией xCoord
Вы можете сделать то же самое для yCoord: Если полилиния s eces следуют друг за другом только по X-Axis, ищущему пересечение между сегментом и вертикальной линией (мышь xCoord) Если сегменты полилинии следуют друг за другом по оси Y-оси для пересечения между сегментом и горизонтальной линией (мышь yCoord)
Полилиния Il не следует никаким правилам, использовать первый ответ - лучший выбор.
Представление [Q & A] (http://stackoverflow.com/questions/23610167/how-to-find-the-coordinates-of-a-line-in-html5-canvas/23611965#23611965), описывающее как найти ближайшую точку на линии, заданной mouseX, mouseY. – markE