[计算几何初步]

[计算几何笔记]

--概念篇

向量点积:

也称向量内积,数量积,即a·b=(a,b)·(c,d)=ac+bd

向量内积的物理意义是b向量在a向量方向上的投影长度*a向量的模

故向量内积有性质:a·b=|a|*|b|*cosα

所以向量的模|a|=sqrt(a·a)

Dotab)表示




向量夹角:

很显然,向量ab夹角的余弦值cosβ=a·b/|a|*|b|

向量垂直:

数量积为0,则两向量垂直,即cosβ=0,所以定义为向量点积为0

向量的方向向量:

a/|a|

向量的投影:

向量ba上投影的模为a·b/|a|,那么向量ba上投影向量为a·b/|a| * (a/|a|)

化简一下就是|a|*|b|*cosβ/|a|* a/|a|= a*|b|cosβ/|a|,也不算化简了。因为平常都写向量内置函数的。

向量的对称:

如下图,用向量加减就好了



向量叉积:

也称向量外积,

|a×b|=|a|·|b|·Sin<a,b>.

公式为a*b=x1y2-x2y1

向量外积代表的是向量a与向量b所构成的平行四边形的有向面积

也是构成的三角形面积的两倍

其符号为,若ba的逆时针方向,那么a×b>0

Crossab)表示



向量的旋转方向:

如果ba的逆时针方向,那么crossab>0,也就是向左旋转

Q:如果我想把一个向量逆时针旋转α度,该怎么计算?

我们知道,如果要把向量a旋转到向量b,旋转α

带着向量模很不好计算的吧~所以我们用a的方向向量来旋转,最后乘以向量模√

既然a是单位向量,那么a=x1,y1),则有x1=Cosβy1=Sinβ

b向量即为(Cosα+β),Sinα+β))

根据三角函数展开,有

x2=cosαcosβ-sinαsinβ y2=sinαcosβ+cosαsinβ

1cosα-y1sinαy2=x1sinα+y1cosα

a向量(x1y1*矩阵(矩阵详见白书)



向量的极角:

tan值,用atan2yx

直线的表示:

用一个点+方向向量来表示

点到直线的距离:

根据数学我们有|Ax0+By0+C|/sqrt(A^2+B^2)

根据下图,我们可以在直线AB上取两点AB,我们可以求出|CrossPAPB|,即△PAB的有向面积的两倍,除以AB的模就是PQ的长度



判断点是否在线段上:

如右图线段AB,如果点在直线上,显然有CrossQAQB=0

我们需要判断点Q是否在线段AB

对于线段AB和点Q,如果位置关系如下图



所示,那么A.x<Q.x<B.xA.y<Q.y<B.y

但其实关系很复杂,我们知道不等关系用乘积来表示

很简单,所以我们有公式:

(Q.x-A.x)*(Q.x-B.x)<0

(Q.y-A.y)*(Q.y-B.y)<0

酱紫就可以简单地判断点是否在线段上了

求一个点到线段的最小距离:

喵,过点P作一条垂线,我们的任务就是判断点Q是否

在线段AB上,如果QAB上,那么距离就是|PQ|,否则是

min(|PA|,|PB|)



下面来复习一些几何知识。附例题:

求三角形的重心:(A+B+C/3(向量)

ProblemA

给你三个定点,求过三个点的圆。

ProblemB

给你三个凸四边形三条相等边上的中点坐标,你要还原这个凸四边形,输出四个顶点的坐标。



解两个问题都可以有两种方法:

1.设未知数解方程(高斯消元orz)

2.运用几何知识求解(数学orz)



凸多边形的三角剖分:

我们用有向面积来计算,最后会神奇的抵消一些面积,正好剩下凸多边形的面积(前提是点应该是有序的)


凸包、旋转卡壳

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值