叉积(向量之间的计算)

叉积运算结果为一个向量
例如: a=(x1,y1),b=(x2,y2) n为向量
则 a×b=(x1y2-x2y1)n;
空间向量 则用行列式则可计算
例如:a =(x1,y1,z1), b=(x2,y2,z2);
| i j k |
| x1 y1 z1 |
| x2 y2 z2 |

= (-1)^(1+1) (y1z2-y2z1)+(-1)(2+1)(x1*z2-x2*z1)+(-1)(3+1)(x1y2-x2y1)

向量积: |a×b|=|a||b|sin(A);
叉积除了上面这个性质还有一个定义
axb=[a
b
sin(A)]n; //在这里a b n都为向量
axb=(aybz−azby,azbx−axbz,axby−aybx)
这里要注意两个向量的叉积也就是外积只可以定义在三维空间中

|a×b|的值就为以a,b为边构成平行四边形的面积

叉积的运用(此处在之后的凸包和极角排序会用用到):
a×b>0 则说明 b在a的左上方
a×b<0 则说明b在a的右下方

在之后就是叉积的模板了

  struct F
  {
     double x,y;
  };
 double cross(struct F a,struct F b)
 {
           return (a.x*b.y-a.y*b.x);
 }

你可能感兴趣的:(acm算法)