定義向量類

2021-07-16 04:19:08 字數 1596 閱讀 4714

// 定義向量類

class vector

vector()

// 使用兩個頂點拉初始化乙個向量

vector(vertex o, vertex d)

// 獲取向量的角度

double angle()

vertex tovertex()

double radian()

double value_sin = y/length;

double value_cos = x/length;

double radian = acos(value_cos);

if (value_sin < 0)

return radian;

} vector( double x, double y )

vector(vector& other)

void set( double x, double y )

// 向量反向

void reverse()

// 逆時針旋轉90度

void xytoyx()

// 任意角度旋轉,逆時針為角度正方向

// 角度數值引數

void rotate2( double angle )

// 弧度數值引數

void rotate( double radian )

void toone()

else

}void tozero()

// 檢測兩個向量是否相等

bool equals(vector other)

vector operator+(vector other)

void scale( double scale )

void offset( double dx, double dy )

void offset_back( double dx, double dy )

double getlength()

// 計算在某個向量方向上的分量,結果可能是負值

double projection( vector direction )

// 計算兩個向量的夾角餘旋值

static double calanglecos( vector& one, vector& other )

// 計算兩個向量的叉積

static double calchaji( vector& first, vector& second )

// 計算兩個向量的夾角弧度數,取值範圍-pi~pi,對應餘旋值為1~-1

// 轉向順時針角度為正值,轉向逆時針,角度為負值。

static double calradian( vector& one, vector& other )

return radian;

} // 計算兩個向量的夾角度數,取值範圍-180~180,對應餘旋值為1~-1

// 轉向順時針角度為正值,轉向逆時針,角度為負值。

static double calangle( vector& one, vector& other )

return angle;

} void show()

};

向量模板類

templaterank vector insert t const e,rank r 注意 元素搬遷的順序不能顛倒,否則會因元素被覆蓋而造成資料丟失。向量結構的插入較之列表結構,複雜度就集中在元素搬遷上,線性正比於字尾的長度。考慮最壞情況,依次從首部插入,元素移動個數成幾何級數由n遞減至1。故總體...

自定義乙個vector向量類

c 標準模板庫stl給出了vector,list,deque,stack,set,map等模板類,平時我們直接使用居多,對於類內部怎麼實現不在意。現在以向量類vector為例,簡單自定義 其uml vetor 陣列名ele t 陣列目前大小size int 陣列容量cap int vector 用指...

c 的向量類

下例中定義了乙個向量類,並對向量定義了一系列操作 檔案結構 定義兩種模式,一種為直角座標,一種為極座標,狀態成員 private double x double y 直角座標系的橫縱座標 double distance double angle 極座標的角度及距離 mode mode void se...