博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算几何
阅读量:5254 次
发布时间:2019-06-14

本文共 1175 字,大约阅读时间需要 3 分钟。

逆时针转90度 (-y,x);

关于精度误差

判断\(a,b\)相等 \(fabs(a-b)<eps\)

判断\(a,b\)不相等 \(fabs(a-b)>eps\)

判断\(:::a<b:a+eps<b\)

判断:\(a\leq b:a<b+eps\)


点积

\(a\cdot b=|a||b|\cos\theta\)

就等于\(a\)的模长乘上\(b\)\(a\)上投影的长度

满足分配律,交换律 \((a+b)\cdot c=a\cdot c+b\cdot c\)

假如\(a(x_1,y_1),b(x_2,y_2)\) 那么\(a\cdot b=x_1x_2+y_1y_2\)

\(a\bot b \Leftrightarrow a\cdot b=0\)

夹角小于90度点积大于0

夹角大于90度点积小于0


叉积

\(a\times b=|a||b|sin\ \theta\)

\(a,b\)为向量,\(\theta\)\(a\)旋转到\(b\)的夹角

\(b\)\(a\)左边为正,右边为负

表示的是\(ab\)围成的平行四边形的面积

\(a\times b=b\times -a\)

满足分配律

假如\(a(x_1,y_1),b(x_2,y_2)\) 那么\(a\times b=x_1y_2-x_2y_1\)

可以用叉积判断两个向量的左右关系,判断平行

可以用来求三角形面积

甚至可以求点到直线的距离!!


向量旋转

\(a\)旋转\(\theta\)

先把\(a\)缩放到1,设原角为\(\alpha\)

然后\(a'\)就是\((cos(\alpha+\theta),sin(\alpha+\theta))\)

就是\((x\cos\theta-y\sin\theta,x\sin\theta+y\cos\theta)\)


直线交点

1437515-20190223162435471-1320506754.png

\[O=A+(B-A)\times\frac{S_{ACD}}{S_{ACD}+S_{BCD}}\]

特判是否平行


多边形面积

对于一个多边形定点按逆时针排序

\[s=\frac 1 2 (P_n\times P_1+\sum_{i=1}^{n-1}P_i\times P_{i+1})\]


圆的交点

用余弦定理\(^{[1]}\) 算出\(\theta\)然后把\(D\)转过去就行了

余弦定理表达式

三角形

img


两圆公切线


皮克定理

2S=2a+b-2,其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。


凸包

能包围住所有点的最小的凸多边形

Andrew

把所有点按横坐标第一关键字,纵坐标第二关键字排序

第一个点肯定在凸包上,用栈维护下凸包

然后倒过来枚举,求上凸包

转载于:https://www.cnblogs.com/ZUTTER/p/10289390.html

你可能感兴趣的文章
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
CF E2 - Array and Segments (Hard version) (线段树)
查看>>
Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
查看>>
SIGPIPE并产生一个信号处理
查看>>
CentOS
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
爬虫-通用代码框架
查看>>
2019春 软件工程实践 助教总结
查看>>
YUV 格式的视频呈现
查看>>
Android弹出框的学习
查看>>
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
Learning-Python【26】:反射及内置方法
查看>>
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>