汇总篇:计算几何汇总


一、向量的叉乘

向量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. JavaScript时间日期格式化
  2. 向量、矩阵的范数--Lp定义
  3. leetcode算法题--最长的斐波那契子序列的长度
  4. Servlet/jsp和Action/jsp传值
  5. 设计出python_Python: 实际项目中抽象出的小项目设计
  6. 【android】3.0以后系统给广播默认加上FLAG_EXCLUDE_STOPPED_PACKAGES标记
  7. 使用Log4j - Java异常处理
  8. 国内机床发展水平和现状
  9. MRP的数据处理-华北水利水电大学(作业)
  10. volatile关键字的作用-适用场景
  11. oracle索引大小暴增_oracle海量数据中提升创建索引的速度
  12. 查找所有的两个字姓名,中间加个空格(强迫症的福音)
  13. Windows10添加英文输入法
  14. HTML常见标签学习
  15. Hadoop2.7.1+Hbase1.2.1集群环境搭建(3)1.x和2.x都支持的集群安装方式
  16. 短视频系统源码,android 真正的全屏沉浸式体验
  17. python爬取豆瓣电影排行榜函数_摆脱剧荒:教你用Python爬取豆瓣电影最新榜单
  18. 如何解除80端口被占用
  19. Microsoft Dynamics 365 (on-premises) Update 2.12
  20. 轩小陌的Python笔记-day05 数据类型

热门文章

  1. mail.php,Postaci Webmail
  2. 编译高博ORBSLAM2_with_pointcloud_map,用TUM数据集测试。
  3. kingcms php 搜索,KingCMS内容管理系统
  4. 推荐uml 流程图 在线编辑工具
  5. SpringBoot Zxing _ Java 生成二维码(可内嵌图片)
  6. mac 部署 ansible 记录
  7. OpenCV——人脸识别模型训练(2)
  8. 解决git的Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa'问题
  9. 齐二TK6916/20/26/32系列数控落地铣镗床简介7
  10. ROS TF 常用接口函数