向量的基本运算

本文介绍了计算几何中向量的基本概念和运算,包括线段、直线、多边形的表示,以及向量的表示、加减法、点积、叉积等。通过这些运算,可以解决三角形面积、线段相交、点在线段或直线上的判断等问题,为后续的计算几何算法奠定基础。
摘要由CSDN通过智能技术生成

写在前面

向量在计算几何中是最常用的结构,也是包含运算较多的结构

向量运算的实现

    struct point{
        double x,y;//定义构造函数会对后面的工作提供极大的便利
        point(){}

        point(double _x,double _y)x:(_x),y(_y){}  //采用运算符重载的方式实现向量的运算

        /*
        或者这样写:
        point(double a=0,double b=0){
            x=a,y=b;
        }
        */

        point operator+(point a){   //向量加法
            return point(x+a.x,y+a.y);
        }

        point operator-(point a){   //向量减法
            return point(x-a.x,y-a.y);
        }

        double operator*(point a){  //向量叉积
            return x*a.y-a.x*y;
        }

        double operator^(point a){  //向量点积
            return x*a.x+y*a.y;
        }

        point operator*(double a){ //向量乘以实数
            return point(a*x,a*y);
        }

        double len2(){             //向量模的平方
            return x*x+y*y;
        }
    };

 

1.一些基本概念:

1)关于一条线段

一条线段如下图所示(在二维平面上):

那么很简单的是,我们可以直接用AB来表示这条线段,那么我们还可以用点+向量的形式来表示这条线段,如上图AB就可以表示为A+\overrightarrow{AB}=B,或者也可以表示为B+\overrightarrow{BA}=A,都是可以的。同样,对于AB上任意一点C,都满足下面这个式子:

如果存在任意C∈AB,都存在\exists(存在)p∈[0,1],使得C=(1-p)A+pB。(p指AC:AB的比例)

证明见下图:

我们过C作CD\parallelOB交OA于D,作CE\parallelOA交OB于E,首先因为有DC\parallelOB,所以\triangleADC\sim\triangleAOB,所以有AD:DO=AC:BC=p:1-p,所以OD=(1-p)OA,同理OE=pOB,因为向量的加减满足平行四边形法则(见下方4.2),所以有\overrightarrow{OC}=\overrightarrow{OD}+\overrightarrow{OE},最后代换一下即可得到上方的式子。

2.关于一条直线

直线一般就是利用直线上的两个点来表示,方法同上。

3.关于一个多边形

最主要的还是一个存储问题,通常我们会按顺时针或逆时针的顺序存储多边形的顶点,或者存边及其起点。

4.关于向量

几何向量就是指线性空间里既有大小又有方向的量(没错就是矢量)

1)关于向量的表示

向量其实可以理解为一条带箭头的线段,箭头代表方向,线段长度代表大小,如果给定起点A和终点B,那么这个向量就可以表示为

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值