Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
developers:references:tlc:dictionary:profiles:start [2023/05/23 18:36] proxor |
developers:references:tlc:dictionary:profiles:start [2024/03/07 15:49] (текущий) proxor |
||
---|---|---|---|
Строка 6: | Строка 6: | ||
==== Функция v-profile-rect ==== | ==== Функция v-profile-rect ==== | ||
- | Объект **Профиль** не является отображаемым элементом. **Профиль** - это виртуальный эскиз используемый при **[[developers:references:tlc:dictionary:3d_model:start|построении 3D-моделей]]** путём выдавливания или вращения. | + | Объект **Профиль** не является отображаемым элементом. **Профиль** - это виртуальный эскиз используемый при **[[developers:references:tlc:dictionary:3d_model:start|построении 3D-тел]]** путём выдавливания или вращения. |
^ Описание ^^^ | ^ Описание ^^^ | ||
Строка 19: | Строка 19: | ||
^ Аргумент ^ Тип ^ Описание ^ | ^ Аргумент ^ Тип ^ Описание ^ | ||
| ''width'' | Вещественное | Ширина | | | ''width'' | Вещественное | Ширина | | ||
- | | ''height'' | Вещественное | Высота. По умолчанию равно занчению аргумента ''width'' | | + | | ''height'' | Вещественное | Высота. По умолчанию равно значению аргумента ''width'' | |
^ Пример ^^^ | ^ Пример ^^^ | ||
| <code lisp> | | <code lisp> | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение квадратного профиля | ; Определение квадратного профиля | ||
Строка 39: | Строка 39: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение прямоугольного профиля | ; Определение прямоугольного профиля | ||
Строка 61: | Строка 61: | ||
^ Синтаксис ^^^ | ^ Синтаксис ^^^ | ||
| <code lisp> | | <code lisp> | ||
- | (v-profile-round radius) | + | (v-profile-round diameter) |
</code> ||| | </code> ||| | ||
^ Аргумент ^ Тип ^ Описание ^ | ^ Аргумент ^ Тип ^ Описание ^ | ||
- | | ''radius'' | Вещественное | Радиус | | + | | ''diameter'' | Вещественное | Диаметр | |
^ Пример ^^^ | ^ Пример ^^^ | ||
| <code lisp> | | <code lisp> | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение круглого профиля | ; Определение круглого профиля | ||
Строка 100: | Строка 100: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение профиля сегмента окружности | ; Определение профиля сегмента окружности | ||
Строка 130: | Строка 130: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение восьмиугольного профиля | ; Определение восьмиугольного профиля | ||
Строка 163: | Строка 163: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение Г-образного профиля со стенками одинаковой ширины | ; Определение Г-образного профиля со стенками одинаковой ширины | ||
Строка 178: | Строка 178: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение Г-образного профиля со стенками разной ширины | ; Определение Г-образного профиля со стенками разной ширины | ||
Строка 211: | Строка 211: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение П-образного профиля со стенками одинаковой ширины | ; Определение П-образного профиля со стенками одинаковой ширины | ||
Строка 226: | Строка 226: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение П-образного профиля со стенками разной ширины | ; Определение П-образного профиля со стенками разной ширины | ||
Строка 259: | Строка 259: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение T-образного профиля со стенками одинаковой ширины | ; Определение T-образного профиля со стенками одинаковой ширины | ||
Строка 274: | Строка 274: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude | (v-extrude | ||
; Определение T-образного профиля со стенками разной ширины | ; Определение T-образного профиля со стенками разной ширины | ||
Строка 296: | Строка 296: | ||
| Профиль ||| | | Профиль ||| | ||
^ Примечание ^^^ | ^ Примечание ^^^ | ||
- | | Профиль должен содержать минимум два вершины. Аргументами могут быть трёхмерные векторы или пары координат X и Y в любом сочетании. Координаты X и Y передаются как отдельные аргументы, поэтому важно следить за количеством и типом передаваемых аргументов. FIXME Описать формирование граней ||| | + | | Профиль должен содержать минимум два вершины. Аргументами могут быть трёхмерные векторы или пары координат X и Y в любом сочетании. Координаты X и Y передаются как отдельные аргументы, поэтому важно следить за количеством и типом передаваемых аргументов.\\ **Важно!** Для корректного расчёта освещения 3D-тела, рекомендуется описывать профиль парами вершин, как если бы каждая пара вершин подразумевала грань профиля. То есть, при перечислении вершин каждую промежуточную точку необходимо дублировать, чтобы получилась конструкция вида:\\ ''Вершина 1, Вершина 2, Вершина 2, Вершина 3, Вершина 3, Вершина 4, ..., Вершина N'' ||| |
^ Синтаксис ^^^ | ^ Синтаксис ^^^ | ||
| <code lisp> | | <code lisp> | ||
Строка 303: | Строка 303: | ||
</code> ||| | </code> ||| | ||
^ Аргумент ^ Тип ^ Описание ^ | ^ Аргумент ^ Тип ^ Описание ^ | ||
- | | ''vector_#'' | 3D-вектор | Трёхмерный вектор | | + | | ''vector_#'' | [[developers:references:tlc:dictionary:vectors:start|3D-вектор]] | Трёхмерный вектор | |
| ''x_#'' | Вещественное | Координата X | | | ''x_#'' | Вещественное | Координата X | | ||
| ''y_#'' | Вещественное | Координата Y | | | ''y_#'' | Вещественное | Координата Y | | ||
Строка 320: | Строка 320: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude profile (vec 0.0 0.0 0.1)) | (v-extrude profile (vec 0.0 0.0 0.1)) | ||
) | ) | ||
Строка 338: | Строка 338: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude profile (vec 0.0 0.0 0.1)) | (v-extrude profile (vec 0.0 0.0 0.1)) | ||
) | ) | ||
Строка 358: | Строка 358: | ||
^ Синтаксис ^^^ | ^ Синтаксис ^^^ | ||
| <code lisp> | | <code lisp> | ||
- | (v-profile-shape profile_1 profile_2 ... profile_N)</code> ||| | + | (v-profile-compound profile_1 profile_2 ... profile_N)</code> ||| |
^ Аргумент ^ Тип ^ Описание ^ | ^ Аргумент ^ Тип ^ Описание ^ | ||
- | | ''profile_#'' | Профиль | Профиль | | + | | ''profile_#'' | [[developers:references:tlc:dictionary:profiles:start|Профиль]] | Профиль | |
^ Пример ^^^ | ^ Пример ^^^ | ||
| <code lisp> | | <code lisp> | ||
Строка 388: | Строка 388: | ||
; Объявление блока геометрии | ; Объявление блока геометрии | ||
(defgeometry | (defgeometry | ||
- | ; Создание 3D-модели путём выдавливания профиля | + | ; Создание 3D-тела путём выдавливания профиля |
(v-extrude compound_profile (vec 0.0 0.0 0.1)) | (v-extrude compound_profile (vec 0.0 0.0 0.1)) | ||
) | ) | ||
Строка 396: | Строка 396: | ||
| {{ :developers:references:tlc:dictionary:profiles:tut_tlc_profile_13.png?nolink |}} ||| | | {{ :developers:references:tlc:dictionary:profiles:tut_tlc_profile_13.png?nolink |}} ||| | ||
+ | ---- | ||
+ | |||
+ | ==== Функция v-profile-rotate ==== | ||
+ | |||
+ | ^ Описание ^^^ | ||
+ | | Создание профиля с переменным значением угла поворота ||| | ||
+ | ^ Возвращаемое значение ^^^ | ||
+ | | Профиль ||| | ||
+ | ^ Синтаксис ^^^ | ||
+ | | <code lisp> | ||
+ | (v-profile-rotate profile start_angle) | ||
+ | (v-profile-rotate profile start_angle end_angle) | ||
+ | </code> ||| | ||
+ | ^ Аргумент ^ Тип ^ Описание ^ | ||
+ | | ''profile'' | [[developers:references:tlc:dictionary:profiles:start|Профиль]] | Вращаемый профиль | | ||
+ | | ''start_angle'' | Вещественное | Начальный угол поворота | | ||
+ | | ''end_angle'' | Вещественное | Конечный угол поворота | | ||
+ | ^ Пример ^^^ | ||
+ | | <code lisp> | ||
+ | (let | ||
+ | ; Определение профиля с переменным углом поворота | ||
+ | ((profile (v-profile-rotate | ||
+ | (v-profile-polygon 8 1.0) | ||
+ | 0 180))) | ||
+ | ; Определение блока геометрии | ||
+ | (defgeometry | ||
+ | ; Создание 3D-тела | ||
+ | (v-extrude profile (vec 0 0 1)) | ||
+ | ) | ||
+ | ) | ||
+ | </code> ||| | ||
+ | ^ Результат ^^^ | ||
+ | | {{ :developers:references:tlc:dictionary:profiles:tut_tlc_profile_14.png?nolink|}} ||| | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Функция v-profile-scale ==== | ||
+ | |||
+ | ^ Описание ^^^ | ||
+ | | Создание профиля с переменным масштабом ||| | ||
+ | ^ Возвращаемое значение ^^^ | ||
+ | | Профиль ||| | ||
+ | ^ Синтаксис ^^^ | ||
+ | | <code lisp> | ||
+ | (v-profile-scale profile start_scale) | ||
+ | (v-profile-scale profile start_scale end_scale) | ||
+ | </code> ||| | ||
+ | ^ Аргумент ^ Тип ^ Описание ^ | ||
+ | | ''profile'' | [[developers:references:tlc:dictionary:profiles:start|Профиль]] | Масштабируемый профиль | | ||
+ | | ''start_scale'' | [[developers:references:tlc:dictionary:vectors:start|3D-вектор]] | Начальный масштаб | | ||
+ | | ''end_scale'' | [[developers:references:tlc:dictionary:vectors:start|3D-вектор]] | Конечный масштаб | | ||
+ | ^ Пример ^^^ | ||
+ | | <code lisp> | ||
+ | (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)) | ||
+ | ) | ||
+ | </code> ||| | ||
+ | ^ Результат ^^^ | ||
+ | | {{ :developers:references:tlc:dictionary:profiles:tut_tlc_profile_15.png?nolink|}} ||| | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Функция v-profile-translate ==== | ||
+ | |||
+ | ^ Описание ^^^ | ||
+ | | Создание профиля с переменным положением ||| | ||
+ | ^ Возвращаемое значение ^^^ | ||
+ | | Профиль ||| | ||
+ | ^ Синтаксис ^^^ | ||
+ | | <code lisp> | ||
+ | (v-profile-translate profile start_position) | ||
+ | (v-profile-translate profile start_position end_position) | ||
+ | </code> ||| | ||
+ | ^ Аргумент ^ Тип ^ Описание ^ | ||
+ | | ''profile'' | [[developers:references:tlc:dictionary:profiles:start|Профиль]] | Перемещаемый профиль | | ||
+ | | ''start_position'' | [[developers:references:tlc:dictionary:vectors:start|3D-вектор]] | Начальное положение | | ||
+ | | ''end_position'' | [[developers:references:tlc:dictionary:vectors:start|3D-вектор]] | Конечное положение | | ||
+ | ^ Пример ^^^ | ||
+ | | <code lisp> | ||
+ | (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)) | ||
+ | ) | ||
+ | ) | ||
+ | </code> ||| | ||
+ | ^ Результат ^^^ | ||
+ | | {{ :developers:references:tlc:dictionary:profiles:tut_tlc_profile_16.png?nolink|}} ||| | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Функция v-profile-mirror ==== | ||
+ | |||
+ | ^ Описание ^^^ | ||
+ | | Создание профиля отражённого от плоскости ||| | ||
+ | ^ Возвращаемое значение ^^^ | ||
+ | | Профиль ||| | ||
+ | ^ Синтаксис ^^^ | ||
+ | | <code lisp> | ||
+ | (v-profile-mirror profile normal) | ||
+ | </code> ||| | ||
+ | ^ Аргумент ^ Тип ^ Описание ^ | ||
+ | | ''profile'' | [[developers:references:tlc:dictionary:profiles:start|Профиль]] | Профиль | | ||
+ | | ''normal'' | [[developers:references:tlc:dictionary:vectors:start|3D-вектор]] | Нормаль плоскости отражения | |