(0017556)
|
DJ VK
|
23-07-2016 20:32
(edited on: 23-07-2016 20:37) |
|
Как задать петлю.
1)Например(!) пользователь включает режим разворота и тащит первую точку перед петлей (пересечением) на следующую после петли. При этом не перемещается первая точка, а от нее рисуется вспомогательная линия до мыши.
Если мышь была отпущена убеждаемся что она на другой точке.
Если между первой (M) и последней (N) точкой участка не меньше 2х точек (N > M+2) проверяем отрезки (M, M+1) и (N, N-1) - если они пересекаются разворачиваем точки M+1 .... N-1.
В случае отсутствия пересечения смотрим отрезки (M, M-1) и (N, N + 1) - Если они пересекаются разворачиваем все точки на отрезке (N+1,..,последняя, первая, .., M-1)
Esc и отжатие кнопки отключает режим разворота.
2)Можно сделать более сложное управление. Например пользователь указывает не 2 точки, а точку пересечения двух отрезков утапливая мышку(OnMouseDown) и направление перемещая и отпуская (Сравниваем координаты в OnMouseUp)
3)Любые Ваши предложения... )
Для режима разворота также можно поменять курсор на стрелку и петлю рядом с ней.
|
|