二维计算几何入门(点,直线)及简单练习

精度问题:定义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分别作叉积,发现结果的正负性不同,故相交。


猜你喜欢

转载自blog.csdn.net/qq_34547055/article/details/80895195
今日推荐