精度问题:定义eps
比较浮点数大小时需要引入极小值eps,具体多小由题目要求定
例如:当eps=0时,0与0.1相等 0与0.9相等
向量:既有方向又有大小的量
向量的夹角:用<a,b>表示向量a和向量b的夹角
表示:
1. 点(point) 用(x,y)表示
2.线段:可以用一个点+一个向量表示,这样便于计算
3.直线:常用直线上的两个点表示(两点确定一条直线)这样比较常用且简便
一些定义:
1.投影:
加黑部分为b在向量a方向上的投影
2.模
表示:向量a的模为|a|
如图,加黑部分为向量a的模,即OA的长度。
向量的运算:
1.加法
表示:a(x1,y1) b(x2,y2) a+b=(x1+y1,x2+y2)
几何意义:
将向量a平移至a' 则x1=AB x2=OE x1+x2=OD 同理y1+y2=CD 则(x1,y1) +(x2,y2)=(x1+y1,x2+y2)
2.减法:与加法成逆运算。
3.点积
表示:a(x1,y1) b(x2,y2) a dot b=x1*x2+y1*y2
或a·b=|a|*|b|*cos<a,b>
几何意义:表示向量b在向量a方向上的投影乘以向量a的模。
4.叉积a(x1,y1) b(x2,y2) a dot b=x1*y2+y1*x2
或|a×b|=|a|·|b|·sin<a,b>
几何意义:两个向量的叉积等于以这两个向量为邻边的平行四边形的面积。
练习一:求一个点绕原点旋转x度的坐标
可以用向量的旋转解决:向量a(x,y)绕原点旋转c度,得到向量a'的坐标为(x·cosc-y·sinc,x·sinc+y·cosc)。
练习二:判断一个点与一条直线的关系:点在直线上方/上/下方
取直线上两点A,B,连接A与已知点C,将向量AB与向量AC作叉积,判断结果的正负从而判断点与直线的关系。
练习三:求两条直线的交点坐标
用叉积算出s1,s2,再用相似得出比例式P=A+向量AB×s1/s1+s2。
练习四:求两条线段的关系:(相交or不相交)
有向量AB,AC,AD,AE,AF,AG,AH,EF,EA,EB,GA,GB,GH
将AB与AC,AD分别作叉积,发现结果的正负性相同,所以C,D在AB同侧,故不相交。
将AB与AE,AF分别作叉积,发现结果的正负性不同,所以E,F在AB异侧,再将EF与EA,EB分别作叉积,发现结果的正负性相同,故不相交。
将AB与AG,AH分别作叉积,发现结果的正负性不同,所以G,H在AB异侧,再将GH与GA,GB分别作叉积,发现结果的正负性不同,故相交。