共用方式為


XMVectorSwizzle 函式 (directxmath.h)

將向量撥動。

語法

XMVECTOR XM_CALLCONV XMVectorSwizzle(
  [in] FXMVECTOR V,
  [in] uint32_t  E0,
  [in] uint32_t  E1,
  [in] uint32_t  E2,
  [in] uint32_t  E3
) noexcept;

參數

[in] V

向量到 swizzle。

[in] E0

索引,描述 V 的哪個元件要放在撥動向量的 x 元件中。 值為 0 會選取 x 元件,1 會選取 y 元件,2 選取 z 元件,3 則選取 w-component。

[in] E1

索引,描述 V 的哪個元件要放在撥動向量的 y 元件中。 值為 0 會選取 x 元件,1 會選取 y 元件,2 選取 z 元件,3 則選取 w-component。

[in] E2

索引,描述 V 的哪個元件要放在撥動向量的 z 元件中。 值為 0 會選取 x 元件,1 會選取 y 元件,2 選取 z 元件,3 則選取 w-component。

[in] E3

索引,描述 V 的哪個元件要放在撥動向量的 w 元件中。 值為 0 會選取 x 元件,1 會選取 y 元件,2 選取 z 元件,3 則選取 w-component。

傳回值

傳回撥動的 XMVECTOR

備註

下列程式碼示範如何使用此函式。

XMVECTOR v = XMVectorSet( 10.0f, 20.0f, 30.0f, 40.0f );
XMVECTOR result = XMVectorSwizzle(v, 3, 3, 0, 2 );

旋轉向量 (結果) 會是 < 40.0f、40.0f、10.0f、30.0f > 。

XM_SWIZZLE_XXM_SWIZZLE_YXM_SWIZZLE_ZXM_SWIZZLE_W 是常數,分別評估為 0、1、2 和 3,以搭配 XMVectorSwizzle使用。 這與 XM_PERMUTE_0XXM_PERMUTE_0YXM_PERMUTE_0ZXM_PERMUTE_0W 相同。

如果是常數索引 (E0、E1、E2、E3) ,使用 XMVectorSwizzle的範本形式會更有效率:


template<uint32_t SwizzleX, uint32_t SwizzleY, uint32_t SwizzleZ, uint32_t SwizzleW>
    XMVECTOR XMVectorSwizzle(FXMVECTOR V)

Example: XMVectorSwizzle< 3, 3, 0, 2>(v);
   

平臺需求

Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 搭配 Windows SDK for Windows 8。 支援 Win32 傳統型應用程式、Windows 市集應用程式和 Windows Phone 8 個應用程式。

需求

   
目標平台 Windows
標頭 directxmath.h (包含 DirectXMath.h)

另請參閱

元件向量函式

XMVectorPermute