exponenta event banner

pointLocation

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

Описание

пример

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

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

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])

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 столбцов (3-D). P содержит координаты x, координаты y и (возможно) координаты z точек запроса.

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

Представлен в R2013a