Интерактивный объект
Контроллер, возвращённый display(), управляет отображением геометрии. Перемещение или скрытие контроллера не меняет исходную форму.
Размещение, цвет и видимость
from zencad import *
body = box(10)
controller = display(body)
controller.relocate(right(20))
controller.set_color(yellow)
controller.hide(True)
controller.hide(False)
show()
| Метод | Действие |
|---|---|
relocate(transform) |
Задать размещение относительно исходного положения |
location() |
Получить размещение |
set_color(color) |
Изменить цвет |
color() |
Получить цвет |
hide(True), hide(False) |
Скрыть или показать |
is_hidden() |
Проверить скрытие объекта при запуске из редактора |
Цвет задаётся объектом Color или кортежем RGB/четырёх компонентов. Четвёртая компонента — прозрачность. В set_color можно отдельно указать border_color для границ граней и wire_color для линий.
В анимации удобно задавать полное размещение через relocate, чтобы преобразования не накапливались от кадра к кадру. При запуске из редактора можно менять свойства заранее созданных объектов; создание новой геометрии внутри callback не поддерживается. Подробнее — «Анимация».
Стрелки и линии
Графические объекты помогают показать направления и вспомогательные построения. Они добавляются в сцену через display():
from zencad import *
from zencad.interactive.line import arrow, line as display_line
display(arrow((0, 0, 0), (10, 0, 0), color=red, arrlen=2, width=2))
display(display_line((0, 0, 0), (0, 10, 0), color=green, width=2))
show()
Обе функции принимают начальную и конечную точки. width задаёт толщину линии, arrlen — размер головы стрелки. Для вектора vec из точки pnt передайте arrow(pnt, pnt + vec).
display_line здесь — имя графической функции. Функция line из основного API ZenCad создаёт геометрическую кривую.