您的位置:首页 > 其它

计算几何相关知识清单

2017-03-17 20:37 274 查看
1 基础知识

1.两点间的距离公式:

已知:平面上的两点的直角坐标分别为P1(x1,y1),P2(x2,y2),则P1和P2两点间的距离为

d=sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2))

2.线段的中点坐标公式:

已知:平面上的两点的直角坐标分别为P1(x1,y1),P2(x2,y2),则线段P1P2的中点坐标为(x,y)

x=(x1+x2)/2 y=(y1+y2)/2

3.角度与狐度与转换

的意义 以及一些三角函数。

4.直线的斜率公式:

已知:平面上的两点的直角坐标分别为P1(x1,y1),P2(x2,y2),则线段P1P2所在的直线的斜率为

k=(y2-y1)/(x2-x1)

陲线斜率以其推导

5.直线的点斜式方程:

已知:直线过点P0(x0,y0),斜率为k,则该直线所在的方程为

y=k(x-x0)+y0=kx+y0-kx0=kx+b(与y轴交点的纵坐标:纵截距)

已知两点求直线方程、已知一点余率救直线方程,已知余率以与Y轴次点求余线方程。

2.叉积

1.已知:平面上的两点的直角坐标分别为p1(x1,y1),p2(x2,y2)则

1)该两点相对坐标原点(0,0)的叉积为m=x1*y2-x2*y1

若m>0 则相对坐标原点,点p1在点p2的顺时针方向

若m<0 则相对坐标原点,点p1在点p2的逆时针方向

若m=0 则原点和p1、p2在一条直线上

(2)该两点相对点p0(x0,y0)的叉积为m=(x1-x0)(y2-y0)-(x2-x0)(y1-y0)

若m>0 则相对p0点,点p1在点p2的顺时针方向

若m<0 则相对p0点,点p1在点p2的逆时针方向

若m=0 则p0和p1、p2在一条直线上

2.确定两条连续的有向线段p0p1和p0p2在pl点是向左转还是向右转

(1)计算叉积m=(x1-x0)(y2-y0)-(x2-x0)(y1-y0)

(2)判断m

若m>0 则p1点向左拐

若m<0 则p1点向右拐

若m=0 则点p0、p1、p2在一条直线上

面积与叉积

平行四边形面积就是叉积的绝对值。

多边形面积:

我们都知道已知A(x1,y1)、B(x2,y2)、C(x3,y3)三点的面积公式为

S(A,B,C) = |y1 y2 y3| * 0.5 =[(x1-x3)(y2-y3) - (x2-x3)(y1-y3)]*0.5

(当三点为逆时针时为正,顺时针则为负的)

对多边形A1A2A3、、、An(顺或逆时针都可以),设平面上有任意的一点P,则有:

S(A1,A2,A3,、、、,An)

= abs(S(P,A1,A2) + S(P,A2,A3)+、、、+S(P,An,A1))

P是可以取任意的一点,用(0,0)时就是下面的了:

设点顺序 (x1 y1) (x2 y2) … (xn yn)

=0.5*abs(x1*y2-y1*x2+x2*y3-y2*x3+…+xn*y1-yn*x1)

另:若要判断凹凸多边形只需考虑所有PPi与PPi+1叉积(1<=i<=n-2)是否同号.

是则凸,否则凹.

3.判断点是否在线段上:

  设点为Q,线段为P1P2 ,判断点Q在该线段上的依据是:( Q - P1 ) × ( P2 - P1 ) = 0 且 Q 在以 P1,P2为对角顶点的矩形内。前者保证Q点在直线P1P2上,后者是保证Q点不在线段P1P2的延长线或反向延长线上,对于这一步骤的判断可以用以下过程实现:

  ON-SEGMENT(pi,pj,pk)

  if min(xi,xj) <=xk <= max(xi,xj) and min(yi,yj) <= yk <= max(yi,yj)

  then return true;

  else return false;

特别要注意的是,由于需要考虑水平线段和垂直线段两种特殊情况,min(xi,xj)<=xk<=max(xi,xj)和min(yi,yj)<=yk<=max(yi,yj)两个条件必须同时满足才能返回真值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: