当前位置: 首页 > news >正文

「Note」计算几何

计算几何基础

点积与叉积

点积

对于 \(\vec a, \vec b\),定义其点积:

\[\vec a\cdot \vec b = |\vec a| |\vec b| \cos \langle \vec a, \vec b\rangle = x_a x_b + y_a y_b \]

一般用于判断两向量夹角。

叉积

对于 \(\vec a, \vec b\),定义其叉积(此处指在二维平面内,若在三维空间内叉积应为一个向量,此处为标量):

\[\vec a\times \vec b = |\vec a| |\vec b| \sin \langle \vec a, \vec b\rangle = x_a y_b - y_a x_b \]

注意其不满足交换律

叉积的几何意义

  1. 向量叉积为两个向量围成的平行四边形面积。
  2. 判断向量顺逆时针方向。(若 \(\vec a \times \vec b > 0\),则 \(b\)\(a\) 逆时针方向(左转),其他情况类似。)

转角公式

将向量 \(\vec a = (x, y)\) 旋转角度 \(X\),得到新向量 \(\vec B = (x \cos B - y \sin B, x \sin B + y \cos B)\)

夹角(极角)及其排序

使用 atan2(x, y) 函数来表示角,再排序。

直线交点

利用叉积判断是否平行,在利用叉积算平四面积得到相似比,最后用向量乘以比值可计算交点:

struct Vec {    DB x, y;Vec operator + (const Vec& other) const {return {x + other.x, y + other.y};}Vec operator - (const Vec& other) const {return {x - other.x, y - other.y};}double operator * (const Vec& other) const {return x * other.y - y * other.x;}Vec operator ^ (double t) const {return {x * t, y * t};}
};Vec Cross_P(Vec a1,Vec a2,Vec b1,Vec b2) {Vec a = a2 - a1, b = b2 - b1, c = b1 - a1;if(fabs(b * a) < 1e-12)return (Vec) {-1e9, -1e9};double t = (b * c) / (b * a);return a1 + (a ^ t);
}
http://www.sczhlp.com/news/237789/

相关文章:

  • CTP制版设备品牌权威推荐:洞察行业翘楚,赋能印刷未来
  • 做牛津纺衬衫的网站不成立公司怎么做企业网站
  • 阳谷网站建设费用桂林漓江景区游玩攻略
  • 郑州网站建设喝彩环球资源网的优势
  • 盐城网站平台建设小型办公室网络布线设计方案
  • 公司网站建设招标文件范本wordpress 网页加载慢
  • 马云的网站是谁建设的手机端是什么
  • 网站开发选什么职位竞价网络推广
  • 外贸网站建设熊掌号seo页面排名优化
  • 个体户做网站ja.wordpress.org
  • 手机网站开发教程浙江十大外贸公司
  • 淄博手机网站专业做电脑系统下载网站
  • 福建建设工程报建网站全国工程信息查询平台
  • 重庆网站制作公司 wordpress卡密销售
  • 网站缺陷和优化的例子wordpress修改我要注册链接
  • 谈谈网站建设会有哪些问题湖南长沙旅游攻略自助游
  • 怎么建立网站免费的购物网站后台管理模板
  • 高端网站建设公司排名简单描述什么是网络营销
  • 南通云网站建设视频制作公司排名
  • 嘉定网站建设网页制作阿里云虚拟主机购买
  • 高端企业网站源码项目网络由箭线和节点构成
  • 厚街做网站公司电脑培训班附近有吗
  • 安徽省住房城乡建设厅网站什么叫网站集约化建设
  • 儿童做网站wordpress斗图
  • 喀什哪有做网站的网站建设服务网站建设
  • 微网站设置爱企业查询
  • 网站建设合同怎么写大伙房水库输水工程建设局网站
  • 做网站使用什么软件的免费咨询师心理医生
  • gdb调试常用命令
  • 为什么大型网站能“秒回”你的用户名?揭秘毫秒级响应背后的“守门人”艺术