Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Рассадка одного объекта на вершины другого объектаСодержание книги
Поиск на нашем сайте delete $*_Clone_* -- Для повторного выполнения скрипта предварительно удаляются предыдущие объекты _______________________________________________________________ Рассчитывается угол между объектами (повёрнут ли один объект в сторону другого) ( _______________________________________________________________ Поворачиваем объект с помощью кватерниона $.rotation =(quat <X> <Y> <Z> <угол вращения>) -- X,Y,Z - координаты вектора вокруг которого будет происходить вращение Пример: RotAxis = polyop.getFaceNormal $ 1 -- нормаль выбранного полигона $.rotation =(quat RotAxis[1] RotAxis[2] RotAxis[3] (acos (dot Vector1 Vector2))) -- (acos (dot Vector1 Vector2) угол (или арккосинус) между двумя единичными (нормализованными) вектроами, значение в градусах. _______________________________________________________________ Матрицы трансформаций t1 = $Teapot001 t2 = Teapot() t2.pos = [0,0,50] -- t2 двигается на 50 по оси Z в глобальных координатах t2.transform *= t1.transform -- устанавливаем положение и ориентацию t2 к t1 _______________________________________________________________ $.transform = rotateXmatrix <int (угол в градусах)> -- поворот матрицы на угол $.transform = rotateYmatrix <int (угол в градусах)> -- поворот матрицы на угол $.transform = rotateZmatrix <int (угол в градусах)> -- поворот матрицы на угол $.dir -- вектор локальной оси z $.transform = rotateY $.transform 45 -- поворачивает матрицу относительно начала коорд. $.transform = rotateYmatrix 45 * $.transform -- локальный поворот _______________________________________________________________ $.transform -- матрица трансформации $.transform = matrix3 1 -- единичная матрица (начального положения объекта) $.transform.scalepart -- только просмотр части масштаба от матрицы трансформации $.transform.rotationpart -- только просмотр части поворота матрицы трансформации $.transform.translationpart -- только просмотр части перемещения матрицы трансформации _______________________________________________________________ $.transform.row4 = [0,0,0] -- на прямую Row4 (строка матрицы) не меняется (результата не будет) -- отдельные трансфортмации матриц трансформации меняются через переменную tmpTr = $.transform tmpTr.Row4 = [110,0,0] $.transform = tmpTr _______________________________________________________________ SelEdge = polyop.getEdgeSelection $ as array -- массив выделенных рёбер polyop.getVertsUsingEdge $ SelEdge as array -- Массив использованных рёбрами вершин _______________________________________________________________ -- Проверка на принадлежность двух элементов массива элементам другого массива (код проверяте, принадлежит ли пара выделенных рёбер отверстию в геометрии) compare = false arrOpenEdges = (polyop.getOpenEdges $) as array -- массив рёбер, принадлежащих дыре в геометрии SelEdges = (polyop.getEdgeSelection $) as array -- массив выделенных рёбер
for i=1 to arrOpenEdges.count do -- от 1 до конца рёбер из числа открытых делать if SelEdges[1] == arrOpenEdges[i] then -- Если одно ребро из выделенных есть среди открытых рёбер (рёбер дыры) тогда for j=1 to arrOpenEdges.count do -- от 1 до конца рёбер из числа открытых делать if SelEdges[2] == arrOpenEdges[j] then (-- Если второе выделенное ребро есть среди рёбер из числа открытых тогда compare = true -- переменная станет true exit -- выход из цикла ) compare -- возвращается результат после выполнения блока или функции для дальнейшей его обработки если это требуется. То есть вместо “OK”, после вычисления блока будет возвращено значение переменной. _______________________________________________________________
|
||
|
Последнее изменение этой страницы: 2021-04-13; просмотров: 118; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.005 с.) |