collisionMesh

Создайте сетчатую выпуклую геометрию столкновения

Описание

Используйте collisionMesh создать геометрию столкновения как выпуклую mesh.

Создание

Описание

пример

MSH = collisionMesh(Vertices) создает выпуклую геометрию столкновения mesh из списка 3-D Вершин. Вершины заданы относительно предпочтительной системы координат (система координат геометрии столкновения). По умолчанию система координат геометрии столкновения располагает с мировой системой координат.

Свойства

развернуть все

Вершины mesh, заданной как N-by-3 массив, где N является количеством вершин. Каждая строка Vertices представляет координаты точки на 3-D пробеле. Обратите внимание на то, что некоторые точки могут быть в созданной выпуклой mesh.

Типы данных: double

Положение геометрии столкновения относительно мировой системы координат, заданной как гомогенная матрица 4 на 4. Можно изменить положение после того, как вы создадите геометрию столкновения.

Типы данных: double

Функции объекта

showПокажите геометрию столкновения

Примеры

свернуть все

Создайте массив, состоящий из координат десяти точек, случайным образом выбранных на сфере единичного радиуса. Для воспроизводимости, набор случайный seed к значению по умолчанию.

rng default
n = 10;
pts = zeros(n,3);
for k = 1:n
    ph = 2*pi*rand(1);
    th = pi*rand(1);
    pts(k,:) = [cos(th)*sin(ph) sin(th)*sin(ph) cos(ph)];
end

Создайте выпуклую геометрию столкновения mesh из массива. Визуализируйте геометрию столкновения.

m = collisionMesh(pts);
show(m)

Создайте второй массив, похожий на первое, но на этот раз состоящий из 1 000 точек, случайным образом выбранных на сфере единичного радиуса.

n = 1000;
pts2 = zeros(n,3);
for k = 1:n
    ph = 2*pi*rand(1);
    th = pi*rand(1);
    pts2(k,:) = [cos(th)*sin(ph) sin(th)*sin(ph) cos(ph)];
end

Создайте и визуализируйте геометрию столкновения mesh из массива. Заметьте, что выбор большего количества точек на сфере приводит к подобной сфере mesh.

m2 = collisionMesh(pts2);
show(m2)

Создайте массив, состоящий из координат восьми углов куба. Куб строится в начале координат и имеет длину стороны 4.

cubeCorners = [-2 -2 -2 ; -2 2 -2 ; 2 -2 -2 ; 2 2 -2 ;...
    -2 -2 2 ; -2 2 2 ; 2 -2 2 ; 2 2 2]
cubeCorners = 8×3

    -2    -2    -2
    -2     2    -2
     2    -2    -2
     2     2    -2
    -2    -2     2
    -2     2     2
     2    -2     2
     2     2     2

Добавьте cubeCorners к pts2. Создайте и визуализируйте геометрию столкновения mesh из нового массива. Поскольку куб содержит сферу, точки сферы, которые являются внутренними к кубу, игнорируются при создании геометрии.

pts3 = [pts2;cubeCorners];
m3 = collisionMesh(pts3);
show(m3)

Введенный в R2019b