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

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


developers:references:tlc:dictionary:profiles:start

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
developers:references:tlc:dictionary:profiles:start [2023/05/17 17:24]
proxor [Метод v-profile-shape]
developers:references:tlc:dictionary:profiles:start [2024/03/07 15:49] (текущий)
proxor
Строка 4: Строка 4:
 <note important>​Раздел на модерации</​note>​ <note important>​Раздел на модерации</​note>​
  
-==== Метод "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
     ; Определение прямоугольного профиля     ; Определение прямоугольного профиля
Строка 53: Строка 53:
 ---- ----
  
-==== Метод "v-profile-round" ​====+==== Функция ​v-profile-round ====
  
 ^ Описание ​ ^^^ ^ Описание ​ ^^^
Строка 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
     ; Определение круглого профиля     ; Определение круглого профиля
Строка 83: Строка 83:
 ---- ----
  
-==== Метод "v-profile-arc" ​====+==== Функция ​v-profile-arc ====
  
 ^ Описание ​ ^^^ ^ Описание ​ ^^^
Строка 100: Строка 100:
 ; Объявление блока геометрии ; Объявление блока геометрии
 (defgeometry (defgeometry
-  ; Создание 3D-модели путём выдавливания профиля+  ; Создание 3D-тела путём выдавливания профиля
   (v-extrude   (v-extrude
     ; Определение профиля сегмента окружности     ; Определение профиля сегмента окружности
Строка 114: Строка 114:
 ---- ----
  
-==== Метод "v-profile-polygon" ​====+==== Функция ​v-profile-polygon ====
  
 ^ Описание ​ ^^^ ^ Описание ​ ^^^
Строка 130: Строка 130:
 ; Объявление блока геометрии ; Объявление блока геометрии
 (defgeometry (defgeometry
-  ; Создание 3D-модели путём выдавливания профиля+  ; Создание 3D-тела путём выдавливания профиля
   (v-extrude   (v-extrude
     ; Определение восьмиугольного профиля     ; Определение восьмиугольного профиля
Строка 144: Строка 144:
 ---- ----
  
-==== Метод "v-profile-g" ​====+==== Функция ​v-profile-g ====
  
 ^ Описание ​ ^^^ ^ Описание ​ ^^^
Строка 163: Строка 163:
 ; Объявление блока геометрии ; Объявление блока геометрии
 (defgeometry (defgeometry
-  ; Создание 3D-модели путём выдавливания профиля+  ; Создание 3D-тела путём выдавливания профиля
   (v-extrude   (v-extrude
     ; Определение Г-образного профиля со стенками одинаковой ширины     ; Определение Г-образного профиля со стенками одинаковой ширины
Строка 178: Строка 178:
 ; Объявление блока геометрии ; Объявление блока геометрии
 (defgeometry (defgeometry
-  ; Создание 3D-модели путём выдавливания профиля+  ; Создание 3D-тела путём выдавливания профиля
   (v-extrude   (v-extrude
     ; Определение Г-образного профиля со стенками разной ширины     ; Определение Г-образного профиля со стенками разной ширины
Строка 192: Строка 192:
 ---- ----
  
-==== Метод "v-profile-p" ​====+==== Функция ​v-profile-p ====
  
 ^ Описание ​ ^^^ ^ Описание ​ ^^^
Строка 211: Строка 211:
 ; Объявление блока геометрии ; Объявление блока геометрии
 (defgeometry (defgeometry
-  ; Создание 3D-модели путём выдавливания профиля+  ; Создание 3D-тела путём выдавливания профиля
   (v-extrude   (v-extrude
     ; Определение П-образного профиля со стенками одинаковой ширины     ; Определение П-образного профиля со стенками одинаковой ширины
Строка 226: Строка 226:
 ; Объявление блока геометрии ; Объявление блока геометрии
 (defgeometry (defgeometry
-  ; Создание 3D-модели путём выдавливания профиля+  ; Создание 3D-тела путём выдавливания профиля
   (v-extrude   (v-extrude
     ; Определение П-образного профиля со стенками разной ширины     ; Определение П-образного профиля со стенками разной ширины
Строка 240: Строка 240:
 ---- ----
  
-==== Метод "v-profile-t" ​====+==== Функция ​v-profile-t ====
  
 ^ Описание ​ ^^^ ^ Описание ​ ^^^
Строка 259: Строка 259:
 ; Объявление блока геометрии ; Объявление блока геометрии
 (defgeometry (defgeometry
-  ; Создание 3D-модели путём выдавливания профиля+  ; Создание 3D-тела путём выдавливания профиля
   (v-extrude   (v-extrude
     ; Определение T-образного профиля со стенками одинаковой ширины     ; Определение T-образного профиля со стенками одинаковой ширины
Строка 274: Строка 274:
 ; Объявление блока геометрии ; Объявление блока геометрии
 (defgeometry (defgeometry
-  ; Создание 3D-модели путём выдавливания профиля+  ; Создание 3D-тела путём выдавливания профиля
   (v-extrude   (v-extrude
     ; Определение T-образного профиля со стенками разной ширины     ; Определение T-образного профиля со стенками разной ширины
Строка 289: Строка 289:
 ---- ----
  
-==== Метод "v-profile-shape" ​====+==== Функция ​v-profile-shape ====
  
 ^ Описание ​ ^^^ ^ Описание ​ ^^^
Строка 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))
   )   )
Строка 348: Строка 348:
 ---- ----
  
-==== Метод "v-profile-compound" ​====+==== Функция ​v-profile-compound ====
  
 ^ Описание ​ ^^^ ^ Описание ​ ^^^
Строка 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-вектор]] ​ | Нормаль плоскости отражения |
developers/references/tlc/dictionary/profiles/start.1684344286.txt.gz · Последние изменения: 2023/05/17 17:24 — proxor