Main Content

faceNormals

(권장되지 않음) 지정된 삼각형에 대한 단위 법선(Unit Normal)

faceNormals(TriRep)는 권장되지 않습니다. faceNormal(triangulation)을 대신 사용하십시오.

TriRep는 권장되지 않습니다. triangulation을 대신 사용하십시오.

설명

예제

FN = faceNormals(TR)은 삼각분할의 각 삼각형에 대한 단위 법선 벡터를 반환합니다. 삼각형 i와 관련된 법선은 FNi번째 행입니다.

참고

이 쿼리는 삼각 곡면 메시에만 적용됩니다.

FN = faceNormals(TR,TI)는 지정된 삼각형 TI 각각에 대한 단위 법선 벡터를 반환합니다.

예제

모두 축소

구 곡면에서 임의의 점 샘플을 삼각분할합니다.

numpts = 100;
thetha = rand(numpts,1)*2*pi;
phi = rand(numpts,1)*pi;
x = cos(thetha).*sin(phi);
y = sin(thetha).*sin(phi);
z = cos(phi);
dt = DelaunayTri(x,y,z);
[tri,Xb] = freeBoundary(dt);
tr = TriRep(tri,Xb);

TriRep 객체를 사용하여 각 삼각형에 대한 법선 벡터를 계산합니다.

fn = faceNormals(tr);

삼각분할을 플로팅하고 법선 벡터의 quiver 플롯이 겹치도록 하여 결과를 표시합니다. incenters를 사용하여 벡터를 각 삼각형의 중심에 배치합니다.

P = incenters(tr);
trisurf(tri,Xb(:,1),Xb(:,2),Xb(:,3), ...
     'FaceColor','cyan','faceAlpha',0.8)
axis equal
hold on
quiver3(P(:,1),P(:,2),P(:,3), ...
     fn(:,1),fn(:,2),fn(:,3),0.5,'color','r')
hold off

Figure contains an axes object. The axes object contains 2 objects of type patch, quiver.

입력 인수

모두 축소

삼각분할 표현으로, TriRep 또는 DelaunayTri 객체로 지정됩니다.

삼각형 인덱스로, 열 벡터로 지정됩니다. TI는 삼각분할 행렬 TR.Triangulation에 대한 인덱스를 포함합니다.

출력 인수

모두 축소

면 법선 벡터로, 행렬로 반환됩니다. FNm×3 행렬입니다. 여기서 m = length(TI)는 쿼리할 삼각형의 수입니다. 각 FN(i,:) 행은 삼각형 TI(i)에 대한 단위 법선 벡터를 나타냅니다.

버전 내역

R2009a에 개발됨