exponenta event banner

inOutStatus

Класс: DelaunayTri

(Не рекомендуемый) Состояние треугольников в 2D ограниченной Триангуляции Делоне

Примечание

inOutStatus(DelaunayTri) не рекомендуется. Используйте isInterior(delaunayTriangulation) вместо этого.

DelaunayTri не рекомендуется. Использование delaunayTriangulation вместо этого.

Синтаксис

IN = inOutStatus(DT)

Описание

IN = inOutStatus(DT) возвращается в / состоянии треугольников в 2D ограниченной Триангуляции Делоне геометрической области. Учитывая Триангуляцию Делоне, которая имеет набор ограниченных ребер, которые задают ограниченную геометрическую область. i 'th треугольник в триангуляции классифицируется как в области если IN(i) = 1 и снаружи в противном случае.

Примечание

inOutStatus только важен для 2D ограниченных Триангуляций Делоне, где наложенные ограничения ребра связали закрытую геометрическую область.

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

DTТриангуляция Делоне.

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

INЛогический массив длины равняется количеству треугольников в триангуляции. Ограниченные ребра в триангуляции задают контуры допустимой геометрической области.

Примеры

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

outerprofile = [-5 -5; -3 -5; -1 -5; 1 -5; 3 -5; ...
 5 -5; 5 -3; 5 -1; 5 1; 5 3;...
 5 5; 3 5; 1 5; -1 5; -3 5; ...
 -5 5; -5 3; -5 1; -5 -1; -5 -3; ];
innerprofile = outerprofile.*0.5;
profile = [outerprofile; innerprofile];
outercons = [(1:19)' (2:20)'; 20 1;];
innercons = [(21:39)' (22:40)'; 40 21];
edgeconstraints = [outercons; innercons];
Создайте ограниченную Триангуляцию Делоне области:
dt = DelaunayTri(profile, edgeconstraints)
subplot(1,2,1);
triplot(dt);
hold on; 
plot(dt.X(outercons',1), dt.X(outercons',2), ...
     '-r', 'LineWidth', 2); 
plot(dt.X(innercons',1), dt.X(innercons',2), ...
     '-r', 'LineWidth', 2);
axis equal;
% Plot showing interior and exterior
% triangles with respect to the domain.
hold off;
subplot(1,2,2);
inside = inOutStatus(dt);
triplot(dt(inside, :), dt.X(:,1), dt.X(:,2));
hold on;
plot(dt.X(outercons',1), dt.X(outercons',2), ...
     '-r', 'LineWidth', 2); 
plot(dt.X(innercons',1), dt.X(innercons',2), ...
     '-r', 'LineWidth', 2);
axis equal;
% Plot showing interior triangles only
hold off;

Смотрите также

| |