向量的外积、内积、正交、平行判断

内积

内积又称:点积、点称、数量积

定义:设向量a(ax,ay),向量b(bx,by)之间的夹角为θ,(0<=θ<=180)
那么a、b的内积a·b=|a|x|b|cosθ=ax * bx+ay * by(横乘横,加上,纵乘纵)

内积中间是点不是x号

我们通过公式可以看出向量内积后得到的是一个数而非向量!

代码实现内积

(后面有完整代码)

//向量内积
double dot(Vector a,Vector b)
{
   
    return a.x*b.x+a.y*b.y;
}

外积

外积又称:向量积、叉乘、叉积

在这里插入图片描述

通过上面定义可以看出,向量a与向量b的外积可以定义出一个新的向量c

外积大小:|axb| 外积大小也就是axb的模 |axb|=|a||b|sinθ

通过上面公式可以看出外积大小等于向量a、b所对应平行四边形的面积

在这里插入图片描述
如何用向量坐标计算呢?

我们上面得出axb定义出新向量的坐标,这个坐标是三维,然而求|axb|只需要将z=0就可以得出axb=(0,0,x1y2-x2y1) 利用求模公式得出|axb|=x1y2-x2y1(可以为负数)

代码实现外积

//向量外积
double cross(Vector a,Vector b)
{
   
    return abs(a.x*b.y-a.y*b.x);
}

完整代码

#include <bits/stdc++.h>

using namespace std;

class Point
{
   

public:
    double x,y;

    Point(double x=0,double y=0):x(x),y(y) {
   }

    //向量加法
    Point operator+(Point p)
    {
   
        return Point(x+p.x,y+p.y);
    }
    //向量减法
    Point operator-(Point p)
    {
   
        return Point(x-p.x,y+p.y);
    }
    //向量伸缩
    Point operator*(double<
  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值