向量叉乘
一、向量的叉乘
向量p=(x1,y1), q=(x2,y2)
则 pxq=x1.y2-x2.y1
pxq= - qxp
叉乘的大小等于于2倍三角形面积.
右手法则:手掌表示p向量,手指表示q向量,方向均指向指尖
pxq > 0, 则p在q的顺时针方向(q,p),即大拇指朝上,手指与手掌弯曲成九十度,手指弯向左边,p逆时针方向旋转到q
pxq<0, 则p在q的逆时针方向 (p,q) ,即大拇指朝下,手指与手掌弯曲成九十度,手指弯向右边,p顺时针方向旋转到q
pxq=0. 则pq 重合
代码计算叉乘
class point{
public:
double x;
double y;
point(double x_=0,double y_=0):x(x_),y(y_){}
friend const point operator+(const point& p1,const point& p2){
return point(p1.x+p2.x,p1.y+p2.y);
};
friend const point operator-(const point& p1,const point& p2){
return point(p1.x-p2.x,p1.y-p2.y);
};
friend const point operator*(const point& p,const double& m){
return point(p.x*m,p.y*m);
};
friend const point operator*(const double& m,const point& p){
return point(p.x*m,p.y*m);
};
friend const point operator/(const point& p,const double& m){
return point(p.x/m,p.y/m);
};
friend ostream& operator <<(ostream& out,point& a){
printf("(%lf,%lf)",a.x,a.y);
return out;
};
};
typedef point vect2;//重命名,向量也是用坐标表示
class line{
public:
point start;
point end;
line(point s=point(0,0),point e=point(0,0)):start(s),end(e){}
};
double cross(point O,point A,point B){//叉乘
double oa_x=A.x-O.x;
double oa_y=A.y-O.y;
double ob_x=B.x-O.x;
double ob_y=B.y-O.y;
return oa_x*ob_y-oa_y*ob_x;
}
二、向量的点乘
向量p=(x1,y1), q=(x2,y2)
pq=x1*x2+y1*y2
double dot(point O,point A,point B){//点乘
double oa_x=A.x-O.x;
double oa_y=A.y-O.y;
double ob_x=B.x-O.x;
double ob_y=B.y-O.y;
return oa_x*ob_x+oa_y*ob_y;
}
三、向量的夹角
cos(alpha)=(pq)/(|p|*|q|)
#include<cmath>
double dot(point O,point A,point B){//点乘
double oa_x=A.x-O.x;
double oa_y=A.y-O.y;
double ob_x=B.x-O.x;
double ob_y=B.y-O.y;
return oa_x*ob_x+oa_y*ob_y;
}
double dis(const point &p1,const point &p2){//求两点之间距离
double ans=(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);
return sqrt(ans);
}
double angle(point O,point A,point B){//两向量OA,OB的夹角
return acos(dot(O,A,B)/(dis(O,A)*dis(O,B)));
}
相关阅读
二叉排序树 二叉排序树(Binary Search Tree,BST):又称二叉查找树,是一种高效的数据结构。 定义 二叉排序树或者是一棵空树,或者是具有
A5创业网(公众号:iadmin5)1月31日消息,近日有消息称便利蜂正在裁员并且出了新招,要求员工参加数学考试,考试不及格的都开除。对此,便利
#前言朋友,你通过各种不同的途经初次接触支持向量机(SVM)的时候,是不是会觉得这个东西耳熟能详,感觉大家都会,却唯独自己很难理解?每一次
信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息。消息说:‘‘今天早上太阳升起’’
1 向量代数 1.1 向量及其线性运算 1.1.1 方向角与方向余弦 1.1.1.1 定义 1.1.1.2 计算法 1.2 数量积 向量积 混合积 1.2.1 数