Описание функции gp:FindMovedPoint
Окончательная компоновка
|
| ||||
Описание функции gp:FindMovedPoint |
| ||||
В функции gp:FindMovedPoint используются очень мощные LISP-выражения для работы со списками. Функция сравнивает список текущих точек полилинии (после перетаскивания пользователем одной из них) с предыдущими точками и возвращает кодированный список (13 <значение_x> <значение_y>) для перемещенной точки.
Наилучший способ познакомиться с работой функции — это выполнить ее пошагово и посмотреть значения, которыми она оперирует. Для этого надо задать точку останова в первом выражении (setq result . . .) и проследить, как изменяются при пошаговом выполнении функции следующие переменные: KeyListToLookFor; PresentPoints; KeyedList; Result; KeyListStatus; MissingKey; MovedPoint. Функции mapcar и lambda будут рассмотрены в следующем разделе. Для того чтобы понять, что происходит внутри функций, следует ознакомиться с комментариями к коду.
|