Инструменты пользователя

Инструменты сайта


developers:references:tlc:dictionary:profiles:start

Определение профилей


Раздел на модерации

Функция v-profile-rect

Объект Профиль не является отображаемым элементом. Профиль - это виртуальный эскиз используемый при построении 3D-тел путём выдавливания или вращения.

Описание
Создание прямоугольного профиля
Возвращаемое значение
Профиль
Синтаксис
(v-profile-rect width)        ; Квадратный профиль
(v-profile-rect width height) ; Прямоугольный профиль
Аргумент Тип Описание
width Вещественное Ширина
height Вещественное Высота. По умолчанию равно значению аргумента width
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение квадратного профиля
    (v-profile-rect 2.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение прямоугольного профиля
    (v-profile-rect 2.0 1.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат

Функция v-profile-round

Описание
Создание круглого профиля
Возвращаемое значение
Профиль
Синтаксис
(v-profile-round diameter)
Аргумент Тип Описание
diameter Вещественное Диаметр
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение круглого профиля
    (v-profile-round 2.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат

Функция v-profile-arc

Описание
Создание профиля сегмента окружности
Возвращаемое значение
Профиль
Синтаксис
(v-profile-arc radius angle span)
Аргумент Тип Описание
radius Вещественное Радиус дуги
angle Вещественное Угол начала дуги
span Вещественное Градусная мера дуги
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение профиля сегмента окружности
    (v-profile-arc 1.0 0 120)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат

Функция v-profile-polygon

Описание
Создание вписанного многоугольного профиля
Возвращаемое значение
Профиль
Синтаксис
(v-profile-polygon quantity radius)
Аргумент Тип Описание
quantity Целое Количество углов
radius Вещественное Радиус окружности
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение восьмиугольного профиля
    (v-profile-polygon 8 1.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат

Функция v-profile-g

Описание
Создание Г-образного профиля (уголок)
Возвращаемое значение
Профиль
Синтаксис
(v-profile-g thickness width)
(v-profile-g thickness width height)
Аргумент Тип Описание
thickness Вещественное Толщина стенки
width Вещественное Ширина
height Вещественное Высота. По умолчанию равно значению аргумента width
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение Г-образного профиля со стенками одинаковой ширины
    (v-profile-g 0.05 2.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение Г-образного профиля со стенками разной ширины
    (v-profile-g 0.05 2.0 1.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат

Функция v-profile-p

Описание
Создание П-образного профиля (швеллер)
Возвращаемое значение
Профиль
Синтаксис
(v-profile-p thickness width)
(v-profile-p thickness width height)
Аргумент Тип Описание
thickness Вещественное толщина стенки
width Вещественное ширина
height Вещественное Высота. По умолчанию равно значению аргумента width
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение П-образного профиля со стенками одинаковой ширины
    (v-profile-p 0.05 2.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение П-образного профиля со стенками разной ширины
    (v-profile-p 0.05 2.0 1.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат

Функция v-profile-t

Описание
Создание Т-образного профиля (тавр)
Возвращаемое значение
Профиль
Синтаксис
(v-profile-t thickness width)
(v-profile-t thickness width height)
Аргумент Тип Описание
thickness Вещественное толщина стенки
width Вещественное ширина
height Вещественное Высота. По умолчанию равно значению аргумента width
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение T-образного профиля со стенками одинаковой ширины
    (v-profile-t 0.05 2.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат
Пример
; Объявление блока геометрии
(defgeometry
  ; Создание 3D-тела путём выдавливания профиля
  (v-extrude
    ; Определение T-образного профиля со стенками разной ширины
    (v-profile-t 0.05 2.0 1.0)
    ; Вектор выдавливания
    (vec 0.0 0.0 0.1)
  )
)
Результат

Функция v-profile-shape

Описание
Создание фигурного профиля
Возвращаемое значение
Профиль
Примечание
Профиль должен содержать минимум два вершины. Аргументами могут быть трёхмерные векторы или пары координат X и Y в любом сочетании. Координаты X и Y передаются как отдельные аргументы, поэтому важно следить за количеством и типом передаваемых аргументов.
Важно! Для корректного расчёта освещения 3D-тела, рекомендуется описывать профиль парами вершин, как если бы каждая пара вершин подразумевала грань профиля. То есть, при перечислении вершин каждую промежуточную точку необходимо дублировать, чтобы получилась конструкция вида:
Вершина 1, Вершина 2, Вершина 2, Вершина 3, Вершина 3, Вершина 4, …, Вершина N
Синтаксис
(v-profile-shape vector_1 vector_2 ... vector_N)
(v-profile-shape x_1 y_1 x_2 y_2 ... x_N y_N)
Аргумент Тип Описание
vector_# 3D-вектор Трёхмерный вектор
x_# Вещественное Координата X
y_# Вещественное Координата Y
Пример
(let
  ; Определение фигурного профиля и присваивание его переменной
  (
    (profile
      (v-profile-shape
        0.0 0.0 -0.5 0.5  ; 1-я грань
        -0.5 0.5 0.0 2.0  ; 2-я грань
        0.0 2.0 0.5 0.5   ; 3-я грань
        0.5 0.5 0.0 0.0)  ; 4-я грань
    )
  )
  ; Объявление блока геометрии
  (defgeometry
    ; Создание 3D-тела путём выдавливания профиля
    (v-extrude profile (vec 0.0 0.0 0.1))
  )
)
; или
(let
  ; Определение фигурного профиля и присваивание его переменной
  (
    (profile
      (v-profile-shape
        (vec) (vec -0.5 0.5)         ; 1-я грань
        (vec -0.5 0.5) (vec 0.0 2.0) ; 2-я грань
        (vec 0.0 2.0) (vec 0.5 0.5)  ; 3-я грань
        (vec 0.5 0.5) (vec))         ; 4-я грань
    )
  )
  ; Объявление блока геометрии
  (defgeometry
    ; Создание 3D-тела путём выдавливания профиля
    (v-extrude profile (vec 0.0 0.0 0.1))
  )
)
Результат

Функция v-profile-compound

Описание
Создание составного профиля
Возвращаемое значение
Профиль
Примечание
Составной профиль должен содержать минимум два профиля
Синтаксис
(v-profile-compound profile_1 profile_2 ... profile_N)
Аргумент Тип Описание
profile_# Профиль Профиль
Пример
(let
  ; Объявление переменных
  (profile compound_profile)
  (setq
    ; Определение фигурного профиля
    profile (v-profile-shape
              (vec) (vec -0.5 0.5)
              (vec -0.5 0.5) (vec 0.0 2.0)
              (vec 0.0 2.0) (vec 0.5 0.5)
              (vec 0.5 0.5) (vec)
            )
    ; Определение составного профиля
    compound_profile  (v-profile-compound
                        ; Профиль
                        profile
                        ; Профиль повернутый на 90 градусов
                        (v-profile-rotate profile 90)
                        ; Профиль повернутый на 180 градусов
                        (v-profile-rotate profile 180)
                        ; Профиль повернутый на 270 градусов
                        (v-profile-rotate profile 270)
                      )
  )  
  ; Объявление блока геометрии
  (defgeometry
    ; Создание 3D-тела путём выдавливания профиля
    (v-extrude compound_profile (vec 0.0 0.0 0.1))
  )
)
Результат

Функция v-profile-rotate

Описание
Создание профиля с переменным значением угла поворота
Возвращаемое значение
Профиль
Синтаксис
(v-profile-rotate profile start_angle)
(v-profile-rotate profile start_angle end_angle)
Аргумент Тип Описание
profile Профиль Вращаемый профиль
start_angle Вещественное Начальный угол поворота
end_angle Вещественное Конечный угол поворота
Пример
(let
  ; Определение профиля с переменным углом поворота
  ((profile (v-profile-rotate
              (v-profile-polygon 8 1.0)
              0 180)))
  ; Определение блока геометрии
  (defgeometry
    ; Создание 3D-тела
    (v-extrude profile (vec 0 0 1))
  )
)
Результат

Функция v-profile-scale

Описание
Создание профиля с переменным масштабом
Возвращаемое значение
Профиль
Синтаксис
(v-profile-scale profile start_scale)
(v-profile-scale profile start_scale end_scale)
Аргумент Тип Описание
profile Профиль Масштабируемый профиль
start_scale 3D-вектор Начальный масштаб
end_scale 3D-вектор Конечный масштаб
Пример
(let
  ; Определение профиля с переменным масштабом
  ((profile (v-profile-scale
              (v-profile-polygon 8 1.0)
              (vec 2.0) (vec 1.0))))
  ; Определение блока геометрии
  (defgeometry
    ; Создание 3D-тела
    (v-extrude profile (vec 0 0 1))
  )
Результат

Функция v-profile-translate

Описание
Создание профиля с переменным положением
Возвращаемое значение
Профиль
Синтаксис
(v-profile-translate profile start_position)
(v-profile-translate profile start_position end_position)
Аргумент Тип Описание
profile Профиль Перемещаемый профиль
start_position 3D-вектор Начальное положение
end_position 3D-вектор Конечное положение
Пример
(let
  ; Определение профиля с переменным положением
  ((profile (v-profile-translate
              (v-profile-polygon 8 1.0)
              (vec) (vec 1.0 1.0))))
  ; Определение блока геометрии
  (defgeometry
    ; Создание 3D-тела
    (v-extrude profile (vec 0 0 1))
  )
)
Результат

Функция v-profile-mirror

Описание
Создание профиля отражённого от плоскости
Возвращаемое значение
Профиль
Синтаксис
(v-profile-mirror profile normal)
Аргумент Тип Описание
profile Профиль Профиль
normal 3D-вектор Нормаль плоскости отражения
developers/references/tlc/dictionary/profiles/start.txt · Последние изменения: 2024/03/07 15:49 — proxor