?? vector.cpp
字號:
//========================================================
/**
* @file Vector.cpp
*
* 項目描述: 3DS文件載入
* 文件描述: 向量類
* 適用平臺: Windows98/2000/NT/XP
*
* 作者: WWBOSS
* 電子郵件: wwboss123@gmail.com
* 創建日期: 2006-12-06
* 修改日期: 2006-12-06
*
*/
//========================================================
#include "Vector.h" /**< 包含頭文件 */
/** 計算向量的長度 */
inline float Vector3::length()
{
return (float)( x * x + y * y + z * z );
}
/** 單位化一向量 */
Vector3 Vector3::normalize()
{
float len = length(); /**< 計算向量長度 */
if( len == 0 )
len = 1;
x = x / len;
y = y / len;
z = z / len;
return *this;
}
/** 點積 */
float Vector3::dotProduct(const Vector3& v)
{
return ( x * v.x + y * v.y + z * v.z );
}
/** 叉積 */
Vector3 Vector3::crossProduct(const Vector3& v)
{
Vector3 vec;
vec.x = y * v.z - z * v.y;
vec.y = z * v.x - x * v.z;
vec.z = x * v.y - y * v.x;
return vec;
}
/** 操作符 + */
Vector3 Vector3::operator +(const Vector3& v)
{
Vector3 vec;
vec.x = x + v.x;
vec.y = y + v.y;
vec.z = z + v.z;
return vec;
}
/** 操作符 - */
Vector3 Vector3::operator -(const Vector3& v)
{
Vector3 vec;
vec.x = x - v.x;
vec.y = y - v.y;
vec.z = z - v.z;
return vec;
}
/** 操作符 * */
Vector3 Vector3::operator *(float scale)
{
x = x * scale;
y = y * scale;
z = z * scale;
return *this;
}
/** 操作符 / */
Vector3 Vector3::operator /(float scale)
{
if(scale != 0.0)
{
x = x / scale;
y = y / scale;
z = z / scale;
}
return *this;
}
/** 負號 */
Vector3 Vector3::operator -()
{
Vector3 vec( - x,- y, - z);
return vec;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -