>>201
DirectXなら下記のような処理になると思います。

D3DXQuaternionRotationAxis⇒任意軸回転のクォータニアンを生成
D3DXMatrixRotationQuaternion⇒クォータニアンから回転マトリックスを生成
D3DXVec3TransformCoord⇒回転マトリックスでベクトルを変換

90度で挙動が変になるのは、たぶんジンバルロックという現象かと思われます。