汇总篇:计算几何汇总


一、向量的叉乘

向量p=(x1,y1), q=(x2,y2)

则 pxq=x1.y2-x2.y1

pxq= - qxp

叉乘的大小等于于2倍三角形面积.

右手法则:手掌表示p向量,手指表示q向量,方向均指向指尖

pxq > 0, 则p在q的顺时针方向(q,p),即大拇指朝上,手指与手掌弯曲成九十度,手指弯向左边,p逆时针方向旋转到q

pxq<0,  则p在q的逆时针方向   (p,q)   ,即大拇指朝下,手指与手掌弯曲成九十度,手指弯向右边,p顺时针方向旋转到q

pxq=0.  则pq 重合

代码计算叉乘

class point{public:double x;double y;point(double x_=0,double y_=0):x(x_),y(y_){} friend const point operator+(const point& p1,const point& p2){return point(p1.x+p2.x,p1.y+p2.y);};friend const point operator-(const point& p1,const point& p2){return point(p1.x-p2.x,p1.y-p2.y);};friend const point operator*(const point& p,const double& m){return point(p.x*m,p.y*m);};friend const point operator*(const double& m,const point& p){return point(p.x*m,p.y*m);};friend const point operator/(const point& p,const double& m){return point(p.x/m,p.y/m);};friend ostream& operator <<(ostream& out,point& a){printf("(%lf,%lf)",a.x,a.y);return out;};
};
typedef point vect2;//重命名,向量也是用坐标表示 class line{public:point start;point end; line(point s=point(0,0),point e=point(0,0)):start(s),end(e){}
};double cross(point O,point A,point B){//叉乘 double oa_x=A.x-O.x;double oa_y=A.y-O.y;double ob_x=B.x-O.x;double ob_y=B.y-O.y;return oa_x*ob_y-oa_y*ob_x;
}

二、向量的点乘

向量p=(x1,y1), q=(x2,y2)

pq=x1*x2+y1*y2

double dot(point O,point A,point B){//点乘 double oa_x=A.x-O.x;double oa_y=A.y-O.y;double ob_x=B.x-O.x;double ob_y=B.y-O.y;return oa_x*ob_x+oa_y*ob_y;
}

三、向量的夹角

cos(alpha)=(pq)/(|p|*|q|)

#include<cmath>double dot(point O,point A,point B){//点乘 double oa_x=A.x-O.x;double oa_y=A.y-O.y;double ob_x=B.x-O.x;double ob_y=B.y-O.y;return oa_x*ob_x+oa_y*ob_y;
}
double dis(const point &p1,const point &p2){//求两点之间距离double ans=(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);return sqrt(ans);
}
double angle(point O,point A,point B){//两向量OA,OB的夹角return acos(dot(O,A,B)/(dis(O,A)*dis(O,B)));
}

计算几何——向量的叉乘、点乘、夹角相关推荐

  1. 向量(矢量)叉乘(叉积)与点乘(点积)

    矢量叉乘与点乘 点乘(点积) 定义式 点乘的几何意义(实际意义) 叉乘(叉积) 定义式 叉乘的几何意义(实际意义) 今天来介绍一下数学上的叉乘与点乘的意义. 点乘(点积) 定义式 我们先来说明一下点乘 ...

  2. 四维向量叉乘matlab,请教:四维或者更高维向量的叉乘定义

    叉乘的集合意义是已知道N维空间中的N-1个基向,可以求出与这N-1个基向量正交的另一个基向量吧. 有的书上说叉乘只在3维上有定义,就是vec1和vec2相乘得: (vec1.y   *   vec2. ...

  3. 计算机图形常用数学之向量运算 向量的模 向量的点乘内积 向量的叉乘外积 向量的模向量的加减法 向量归一化

    向量 已知a.b.c是三个向量 向量的投影 投影过程 a向量在b向量上的投影就是作a到b的垂线,交点就是投影坐标a向量在b向量上的投影就是作a到b的垂线,交点就是投影坐标a向量在b向量上的投影就是作a ...

  4. 计算几何之用叉乘求多边形面积

    一.理论基础 二维向量叉乘得到的是对应平行四边形的有向面积,所以,只要保证按照逆时针对点排序,以下的算法都是可行的: ①凸多边形,选取一个A0,从A1开始依次挑选相邻的两个点,求三角形面积,求和即可 ...

  5. 向量相似度的计算和向量夹角余旋的关系

    在向量空间模型中,文本泛指各种机器可读的记录.用D(Document)表示,特征项(Term,用t表示)是指出现在文档D中且能够代表该文档内容的基本语言单位,主要是由词或者短语构成,文本可以用特征项集 ...

  6. 直角坐标系中向量与三个坐标轴的夹角问题

    最近在学习阵列信号处理,发现课件上有一个来波矢量与坐标夹角换算的问题,于是就写了几笔,加以整理得到下面的内容. 设有空间直角坐标系O-XYZ P点坐标,向量与X轴.Y轴和Z轴的夹角分别为α.β和γ. ...

  7. matlab 计算任一向量与X轴正方向的夹角

    https://www.ilovematlab.cn/thread-46944-1-1.html

  8. 1、使用库函数计算两个向量的夹角

    首先需要安装Eigen库.安装方法如下链接:https://blog.csdn.net/m0_37957160/article/details/109581546 使用到的库函数是: C ++ 中的a ...

  9. DirectX 向量点乘和叉乘

    使用 Length()函数获取向量的长度: 运行一下:还是 不是有效的win32应用程序 错误:下回再整: 然后看一下向量的乘法: 可以调用Add()函数实现两个向量相加: 调用Multiply()实 ...

最新文章

  1. Daydream VR
  2. Classes in JScript – Part III 类的继承与封装
  3. numpy安装失败-小失误
  4. [BZOJ 1588] [HNOI 2002] 营业额统计
  5. 13-Canny边缘检测
  6. oracle监控工具ignite使用图解
  7. mysql8.0.11-1 修改密码报错
  8. PCWorld:HTML5会终结移动应用程序吗?
  9. 彻底解决Python包下载慢问题
  10. H264、H265编码概念及I帧P帧B帧
  11. 什么是RS485总线?怎么使用RS485总线?——转自微信公众号弱点课堂
  12. MTK6577 编译报错
  13. ubantu apt命令失败
  14. (转)CGJ02、BD09、西安80、北京54、CGCS2000常用坐标系详解
  15. 随机生成数字字母组合
  16. android验证数字字母和特殊字符,正则表达式必须包含字母数字和特殊字符
  17. HTTP状态码的含义
  18. 苹果x支持5g吗_【苹果】曝iPhone12双卡下不支持5G?NO!小白实测支持
  19. linux中错误编号对应意思
  20. PXE实现系统批量自动安装

热门文章

  1. 小虎电商浏览器:多多打单电子面单怎么开通
  2. TerraBuilder 操作制作MPT
  3. poj 1950 Dessert 深搜
  4. Flutter解决在ios中弹出键盘没有小数点
  5. 四种计算机硬件故障检修方法,计算机硬件检测及维修几点认识.doc
  6. 【MATLAB】plot和fplot的区别
  7. PHP制作个人名片二维码
  8. 【原创】软件测试经验图谱硬技能之业务逻辑
  9. 华为自研系统鸿蒙很快就会搭载进手机吗?
  10. 网络安全系列-VI: 网络安全大数据分析的粗浅认识