算法竞赛入门经典训练指南-4.1.1学习笔记

点积:两个向量v和w的点积等于两者长度的乘积再乘上它们的夹角的余弦。夹角是指v到w的逆时针旋转的角。

夹角大于90度时积为负。(255页2段为止)

double Dot(Vector A, Vector B){ return A.x*B.x + A.y*B.y;}
double Length(Vector A){ return sqrt(Dot(A, A)); }
double Angle(Vector A, Vector B)
{ 
	return acos(Dot(A, B) /Length(A) /Length(B));
}

叉积:两个向量v和w的叉积等于v和w组成的三角形的有向面积的两倍。

顺着第一个向量v看,如果w在左边,那么叉积大于0。

否则小于0,如果两个向量共线,那么叉积等于0。

//叉积
double Cross(Vector A, Vector B){ return A.x * B.y - A.y * B.x; }
double Area2(Point A, Point B, Point C)
{
	return Cross(B-A, C-A);}
}

两个向量的位置关系可以把叉积和点积组合在一起判断。

向量旋转。

Vector Rotate(Vector A, double rad)
{
	return Vector(A.x*cos(rad) - A.y*sin(rad), A.x*sin(rad) + A.y*cos(rad);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值