pointLocation

Треугольник или тетраэдр, охватывающий точку

Описание

пример

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

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

ID = pointLocation(TR,x,y,z) задает x -cordinates, y -cordinates и z -cordinates 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])

Figure contains an axes. The axes contains 2 objects of type line.

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

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

     1
     3

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

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

Figure contains an axes. The axes contains 3 objects of type line.

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

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

rng('default')
x = rand([20 1]);
y = rand([20 1]);
z = rand([20 1]);
TR = delaunayTriangulation(x,y,z);

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

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

    27
    21

B = 2×4

    0.5721    0.1340    0.2046    0.0893
    0.6422    0.1900    0.1495    0.0183

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

свернуть все

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

Типы данных: triangulation | delaunayTriangulation

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

Введенный в R2013a