Задумал тут создать я библиотечный элемент на основе изменяемого поля многоугольника.
Для начала поставил перед собой решить задачку создание алгоритма самого поля.
изучил темы с изменяемыми массивами
И вот, просмотрев один из примеров “editable path” от Valery W , я не понял алгоритма и решил попробовать с нуля..
мучался пару дней и вот что получилось «поле 4.1.gsm”
понял, что операторов стандартных в ArchiCAD не хватает, посему приходится изловчаться искать момент, когда двигается точка, либо ArchiCAD выдает имя изменяемого массива без конкретного изменяемого параметра..
по сему делу собираю консилиум.
во-первых кто знает алгоритм, отпишитесь.. как
жду обсуждений выложенных файлов
привожу пример своего:
1.создаю массив точек ху
- [y], за которые можно хватать
любая из этих точек может являться как углом, так и серединой между углами.
2.создаю массив numbers, в котором описан порядок какие точки углами являются, а какие серединой. (это нужно для того, чтобы при хватании серединной точки она оставалась собой, но в массиве прописывалась принадлежность к угловой)
3.создаю дубляж ху[][]
4.в скрипте параметров при перемещении точки:
- сравниваю все координаты с дубляжом и выявляю измененную точку
- если изменилась середина, то в массиве numbers прописываю её угловой и добавляю еще две серединных xy[][], которые в массиве точек ху[][] прибавляются в конце.
- если изменяется угловая точка, то двигаю за ней серединные точки (при этой операции ArchiCAD выдает последнее изменение серединной точки, посему попутно делается пару кренделей)
- произвожу дубляж координат, для дальнейшего вычисления изменений
Ну и попрошу Valery W , если еще свежо в памяти отписать кратенько систему своего алгоритма.