pointLocation

Треугольник или точка включения четырехгранника

Синтаксис

ID = pointLocation(TR,P)
ID = pointLocation(TR,x,y)
ID = pointLocation(TR,x,y,z)
[ID,B] = pointLocation(___)

Описание

пример

ID = pointLocation(TR,P) возвращает идентификаторы треугольников или tetrahedra включение точек запроса в P. Каждая строка в матричном P содержит координаты точки запроса.

ID = pointLocation(TR,x,y) задает x - координаты и y - координаты 2D точек запроса как отдельные векторы - столбцы.

ID = pointLocation(TR,x,y,z) задает x-координаты, y-координаты и z-координаты 3-D точек запроса как отдельные векторы - столбцы.

пример

[ID,B] = pointLocation(___) также возвращает барицентрические координаты каждой точки запроса относительно ее треугольника включения или четырехгранника для любого из предыдущих синтаксисов.

Примеры

свернуть все

Найдите треугольники триангуляции, которые заключают набор точек запроса.

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

TP = [2.5 8.0; 6.5 8.0; 2.5 5.0; 6.5 5.0; 1.0 6.5; 8.0 6.5];
C = [5 3 1; 3 2 1; 3 4 2; 4 6 2];
TR = triangulation(C,TP);

Задайте две точки запроса.

P = [2.25 7; 6 6.5];

Постройте график триангуляции и точек запроса.

triplot(TR)
hold on
plot(P(:,1),P(:,2),'k*')
ylim([4 9])
xlim([0 9])

Определите идентификаторы треугольников, которые заключают каждую точку запроса.

ID = pointLocation(TR,P)
ID = 2×1

     1
     3

Подсветите треугольники, которые заключают точки запроса в красный.

triplot(TR.ConnectivityList(ID,:),TP(:,1),TP(:,2),'r')

Найдите tetrahedra 3-D триангуляции, которые заключают набор точек запроса.

Создайте Триангуляцию Делоне из набора 3-D точек.

x = gallery('uniformdata',[20 1],0);
y = gallery('uniformdata',[20 1],1);
z = gallery('uniformdata',[20 1],2);
TR = delaunayTriangulation(x,y,z);

Найдите идентификаторы tetrahedra, которые заключают точки запроса и вычисляют барицентрические координаты точек запроса.

P = [0.7 0.6 0.3; 0.5 0.5 0.5];
[ID,B] = pointLocation(TR,P)
ID = 2×1

    57
    56

B = 2×4

    0.2796    0.0184    0.5286    0.1734
    0.3687    0.0149    0.5343    0.0821

Входные параметры

свернуть все

Представление триангуляции, заданное как скалярный объект triangulation или delaunayTriangulation.

Типы данных: триангуляция | delaunayTriangulation

Точки запроса, заданные как матрица (2-D) с 2 столбцами или матрица (3-D) с 3 столбцами. P содержит x-координаты, y-координаты, и (возможно) z-координаты точек запроса.

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

x-координаты точек запроса, заданных как вектор - столбец.

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

y-координаты точек запроса, заданных как вектор - столбец.

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

z-координаты точек запроса, заданных как вектор - столбец.

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

Выходные аргументы

свернуть все

Треугольник или tetrahedra идентификаторы треугольников или tetrahedra включение точек запроса, возвращенных как вектор - столбец. ID треугольника или четырехгранника является номером строки соответствующего треугольника или четырехгранника в свойстве ConnectivityList.

Если точка запроса находится на контуре двух или больше треугольников или tetrahedra, то самый большой ID возвращен.

ID содержит значения NaN для точек, которые не расположены в треугольнике или четырехграннике триангуляции.

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

Барицентрические координаты каждой точки запроса относительно ее треугольника включения или четырехгранника, возвращенного как матрица (2-D) с 3 столбцами или матрица (3-D) с 4 столбцами.

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

Введенный в R2013a

Была ли эта тема полезной?