D3DXPlaneTransformArray 함수 (D3DX10Math)D3DXPlaneTransformArray function (D3DX10Math.h)

행렬을 기준으로 평면의 배열을 변환 합니다.Transforms an array of planes by a matrix. 각 평면을 설명 하는 벡터를 정규화 해야 합니다.The vectors that describe each plane must be normalized.

구문Syntax

D3DXPLANE* D3DXPlaneTransformArray(
  _Inout_       D3DXPLANE  *pOut,
  _In_          UINT       OutStride,
  _In_    const D3DXPLANE  *pP,
  _In_          UINT       PStride,
  _In_    const D3DXMATRIX *pM,
  _In_          UINT       n
);

매개 변수Parameters

Pout [ in, out]pOut [in, out]

유형: D3DXPLANE*Type: D3DXPLANE*

결과 변환 된 평면을 포함 하는 D3DXPLANE 구조체에 대 한 포인터입니다.Pointer to the D3DXPLANE structure that contains the resulting transformed plane. 예제를 참조 하세요.See Example.

Outstride [ 진행]OutStride [in]

형식: UINTType: UINT

변환 된 각 평면의 스트라이드입니다.The stride of each transformed plane.

pP [ 진행]pP [in]

형식: Const D3DXPLANE *Type: const D3DXPLANE*

변환할 평면의 배열을 포함 하는 입력 D3DXPLANE 구조체에 대 한 포인터입니다.Pointer to the input D3DXPLANE structure, which contains the array of planes to transform. 이 함수를 호출 하기 전에 평면을 설명 하는 벡터 (a, b, c)를 정규화 해야 합니다.The vector (a, b, c) that describes the plane must be normalized before this function is called. 예제를 참조 하세요.See Example.

Pstride [ 진행]PStride [in]

형식: UINTType: UINT

변형 되지 않은 각 평면의 스트라이드입니다.The stride of each non-transformed plane.

pM [ 진행]pM [in]

형식: Const D3DXMATRIX *Type: const D3DXMATRIX*

변환 값의 역변환을 포함 하는 원본 D3DXMATRIX 구조체에 대 한 포인터입니다.Pointer to the source D3DXMATRIX structure, which contains the inverse transpose of the transformation values.

n [ in]n [in]

형식: UINTType: UINT

변환할 평면의 수입니다.The number of planes to transform.

반환 값Return value

유형: D3DXPLANE*Type: D3DXPLANE*

변환 된 평면을 나타내는 D3DXPLANE 구조체에 대 한 포인터입니다.Pointer to a D3DXPLANE structure, representing the transformed plane. 이 함수는 다른 함수에 대 한 매개 변수로 사용할 수 있도록 pOut 매개 변수에서 반환 되는 값과 같습니다.This is the same value returned in the pOut parameter so that this function can be used as a parameter for another function.

설명Remarks

이 예에서는 균일 하지 않은 눈금을 적용 하 여 하나의 평면을 변환 합니다.This example transforms one plane by applying a non-uniform scale.

#define ARRAYSIZE 4
D3DXPLANE planeNew[ARRAYSIZE];
D3DXPLANE plane[ARRAYSIZE];

for(int i = 0; i < ARRAYSIZE; i++)
{
    plane = D3DXPLANE( 0.0f, 1.0f, 1.0f, 0.0f );
    D3DXPlaneNormalize( &plane[i], &plane[i] );
}

D3DXMATRIX  matrix;
D3DXMatrixScaling( &matrix, 1.0f, 2.0f, 3.0f ); 
D3DXMatrixInverse( &matrix, NULL, &matrix );
D3DXMatrixTranspose( &matrix, &matrix );
D3DXPlaneTransformArray( &planeNew, sizeof (D3DXPLANE), &plane, 
                         sizeof (D3DXPLANE), &matrix, ARRAYSIZE );

평면에 대 한 설명은 ax + by + cz + dw = 0입니다.A plane is described by ax + by + cz + dw = 0. 첫 번째 평면은 (a, b, c, d) = (0, 1, 1, 0)으로 생성 되며, y + z = 0으로 설명 되는 평면입니다.The first plane is created with (a,b,c,d) = (0,1,1,0), which is a plane described by y + z = 0. 크기를 조정한 후에는 새 평면에 (a, b, c, d) = (0, 0.353 f, 0.235 f, 0)이 포함 되며,이는 0.353 y + 0.235 z = 0으로 설명 되는 새 평면을 보여 줍니다.After scaling, the new plane contains (a,b,c,d) = (0, 0.353f, 0.235f, 0), which shows the new plane to be described by 0.353y + 0.235z = 0.

PM 매개 변수는 변환 행렬의 역변환을 포함 합니다.The parameter pM, contains the inverse transpose of the transformation matrix. 변환 된 평면의 법선 벡터가 올바르게 변환 될 수 있도록이 메서드에는 역 전치가 필요 합니다.The inverse transpose is required by this method so that the normal vector of the transformed plane can be correctly transformed as well.

요구 사항Requirements

요구 사항Requirement Value
헤더Header
D3DX10Math
D3DX10Math.h
라이브러리Library
D3DX10
D3DX10.lib

참고 항목See also

수학 함수Math Functions