Интерактивный объект

Контроллер, возвращённый 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 создаёт геометрическую кривую.