문제

나는 다각형이있다 V 정점 및 n 개구부 수. Matlab 에서이 다각형에 대한 delaunay 삼각 측량을 사용하여 메쉬를 어떻게 만들려면?

나는 내가 사용할 수 있다는 것을 안다 델라 우나이 기능이지만 개구부를 입력하는 방법을 모르겠습니다.

도움이 되었습니까?

해결책

메모: 최신 버전의 Matlab을 사용하는 것이 좋습니다 delaunayTriangulation 수업 그리고 관련된 방법. 아래 솔루션은 이전 버전에 유효하며 최신 클래스에 쉽게 적응할 수 있어야합니다.


함수를 사용할 수 있습니다 Delaunaytri 다각형의 경계와 개구부의 가장자리를 포함하도록 제한된 가장자리와 함께 Delaunay 삼각 측량을 만듭니다. 이렇게하면 개구부가 포함 된 삼각 측량이 만들어 지므로 기능을 사용하여 경계 영역 (즉, 다각형에서는 다각형이지만 개구부에서는 그렇지 않은) 만 선택할 수 있습니다. inoutstatus.

다음은 정사각형 구멍이있는 사각형의 예입니다.

x = [0 1 2 3 3 3 3 2 1 0 0 0 1 2 2 1].';
y = [0 0 0 0 1 2 3 3 3 3 2 1 1 1 2 2].';
c = [(1:11).' (2:12).'; 12 1; (13:15).' (14:16).'; 16 13];  % Constrained edges
dt = DelaunayTri(x, y, c);   % Create constrained triangulation
isInside = inOutStatus(dt);  % Find triangles inside the constrained edges
tri = dt(isInside, :);       % Get end point indices of the inner triangles
triplot(tri, x, y);          % Plot the inner triangles
hold on;
plot(x(c(1:12, :)), y(c(1:12, :)), 'r', 'LineWidth', 2);    % Plot the outer edges
plot(x(c(13:16, :)), y(c(13:16, :)), 'r', 'LineWidth', 2);  % Plot the inner edges
axis equal;
axis([-0.5 3.5 -0.5 3.5]);

위의 코드에서 작성된 플롯은 다음과 같습니다.

enter image description here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top