📄 vector.h
字号:
typedef double db;
class vector{
private:
public:
db xx,yy,zz;
vector(db x=0.0,db y=0.0,db z=0.0);
double operator!(); //calculate the module of a vector
vector operator&(); //unit vector
vector operator~(); //calculate the directive cosine of a vector
friend ostream& operator<<(ostream& os,vector& A);
friend istream& operator>>(istream& is,vector& A);
friend bool operator==(vector& A,vector& B);
friend double operator*(vector& A,vector& B); //dot multiplication
friend vector operator*(db k,vector& B);
friend vector operator*(vector& B,db k);
friend vector operator/(vector& A,vector& B); //cross multiplication
friend vector operator+(vector& A,vector& B); //additive operator
friend vector operator-(vector& A,vector& B);
friend double angle(vector& A,vector& B);
//friend vector operator(vector A,db k);
};
vector::vector(db x,db y,db z){
xx=x;yy=y;zz=z;
}
double vector::operator!(){
return sqrt(xx*xx+yy*yy+zz*zz);
}
vector vector::operator~(){
double temp=sqrt(xx*xx+yy*yy+zz*zz);
return vector(xx/temp,yy/temp,zz/temp);
}
vector vector::operator&(){
double temp=sqrt(xx*xx+yy*yy+zz*zz);
return vector(xx/temp,yy/temp,zz/temp);
}
bool operator==(vector& A,vector& B){
return ((A.xx==B.xx)&&(A.yy==B.yy)&&(A.zz==B.zz))?true:false;
}
ostream& operator<<(ostream& os,vector& A){
os<<A.xx<<"\t"<<A.yy<<"\t"<<A.zz<<endl;
return os;
}
istream& operator>>(istream& is,vector& A){
is>>A.xx>>A.yy>>A.zz;
return is;
}
double operator*(vector& A,vector& B){
return A.xx*B.xx+A.yy*B.yy+A.zz*B.zz;
}
vector operator/(vector& A,vector& B){
return vector(A.yy*B.zz-A.zz*B.yy,A.zz*B.xx-A.xx*B.zz,A.xx*B.yy-A.yy*B.xx);
}
vector operator*(db k,vector& B){
return vector(k*B.xx,k*B.yy,k*B.zz);
}
vector operator*(vector& B,db k){
return vector(k*B.xx,k*B.yy,k*B.zz);
}
vector operator+(vector& A,vector& B){
return vector(A.xx+B.xx,A.yy+B.yy,A.zz+B.zz);
}
vector operator-(vector& A,vector& B){
return vector(A.xx-B.xx,A.yy-B.yy,A.zz-B.zz);
}
double angle(vector& A,vector& B){
return acos((A*B)/(!A*!B));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -