「Note」计算几何

news/2025/10/28 12:18:36/文章来源:https://www.cnblogs.com/Eon-Sky/p/19168251

计算几何基础

点积与叉积

点积

对于 \(\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.mzph.cn/news/948677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从 “报表堆里找问题” 到 “实时预警止损”:MyEMS 如何终结能源管理低效?

在双碳目标与成本压力的双重驱动下,能源管理早已成为企业运营的核心环节 —— 但许多企业仍被困在 “报表堆里找问题” 的传统模式中:月底汇总数据、人工核对报表、发现异常时能耗浪费已发生、整改措施滞后于损失,这…

[PaperReading] Breaking the Modality Barrier: Universal Embedding Learning with Multimodal LLMs

目录Breaking the Modality Barrier: Universal Embedding Learning with Multimodal LLMsTL;DRMethod阶段一:Textual Discriminative Knowledge Distillation阶段二:Hard Negative Enhanced Instruction Tuning过滤…

【CI130x 离在线】语音芯片如何判断TTS音频播放完毕?

这个函数通过以下几个条件来综合判定TTS播放结束: 主要判定逻辑: 1. 缓冲区数据检查c#if NET_AUDIO_PLAY_BY_MP3 if (xStreamBufferBytesAvailable(mp3_player) == 0) // 播放完成 #elif NET_AUDIO_PLAY_BY_PCM || N…

完整教程:Qt信号与槽在多线程编程中的应用与注意事项

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

从 “短期达标” 到 “长期优化”:MyEMS 如何帮企业建立可持续的能源管理体系?

能源管理体系:短期与长期目标解析 在当今追求可持续发展的时代,能源管理体系对于企业而言至关重要。它犹如企业能源管理的指南针,引导企业在能源利用的道路上不断优化前行。能源管理体系的目标可以大致分为短期达标…

四场比赛(三)

0.前言 不会二项式反演了。 1.正文 20251028 我怒了。我不会二项式反演了。哭了。

使用DAST发现Android应用API中的AWS凭证泄露漏洞

本文详细介绍了如何通过动态应用安全测试(DAST)技术,在Android应用API中发现泄露的AWS凭证,这些凭证可能导致AWS基础设施被接管,包含完整的测试环境搭建和漏洞发现过程。发现隐藏威胁:我如何使用DAST在Android应用…

百航鹿大联训 Pwn篇

好难我靠,太难了。 四个人就我一个是主攻binary的,什么汇编、堆栈、计组一个没学,在人家机房里像个飞舞。 干巴爹。 hitb2018_gundam 纪念一下,人生第一道做出来(呃,复现出来)的Pwn题。人家教练交代的任务说什么…

开发stm32-配置vscode环境

第一步: 下载编译工具: 第二步: 打开vscode,安装相关插件。第三步:生成文件 (1)打开命令面板(Ctrl+Shift+P)输入并选择 C/Cpp: Edit Configurations (UI)。 第四步:配置c_cpp_properties.json 参照以下配置:…

iNeuOS工业互联网操作系统,增加工厂模型配置,继续深入业务

这次增加《生产工厂》模型配置,面向集团业务场景,可以增加多个工厂、每个工厂配置多个工序和班制信息。后续继续深化面向智能制造生产一体化管控具体业务,实现能源监测、能源统计和分析等功能模块。1. 概述 之前…

C++语法—类的声明和定义

一、 类的声明和定义 class 类名 {public:数据成员的声明成员函数的声明private:数据成员的声明成员函数的声明protected:数据成员的声明成员函数的声明 } 自生类的对象不可以作为该类的成员,但自生类的指针或引用可以…

施工用电隐患 “无形侦探”!思通数科 AI 卫士自动排查用电违规

施工用电是施工现场安全管理的 “重中之重”,但传统人工巡检模式常因 “专业性要求高、隐患隐蔽性强” 陷入困境:电缆泡水、电线私拉乱接(如直接缠绕钢管、未穿管保护)等隐患,藏在设备角落或地面杂物下,人工难以…

基于C#的停车场管理系统实现

一、系统架构设计 // 核心类结构设计 public class ParkingSystem {private ParkingLot _parkingLot; // 停车场实体private VehicleManager _vehicleMgr; // 车辆管理private FeeCalculator _feeCalculator; …

为什么大型网站能“秒回”你的用户名?揭秘毫秒级响应背后的“守门人”艺术

我们都经历过那个瞬间:在一个新平台注册时,你满怀期待地输入一个心仪的昵称,比如“ByteMonk”,点击“下一步”…… 几乎在你点击的同一瞬间,页面就弹出了那个让人抓狂的红色提示:“用户名已被占用”。 请暂停一下…

文件同步备份:为什么说“同步盘”是比“普通网盘”更高效、更安全的选择?

还在为文件误删或忘记保存而烦恼吗?本文深度评测2024年主流文件同步软件,助你找到最佳数据备份方案。首选推荐坚果云,其无感自动同步与强大的“文件历史版本”功能,能有效防止数据丢失,是你的终极数据“后悔药”。…

连中五标,中电金信国际化服务助力企业出海

近日,中电金信语言服务业务持续发力,凭借专业的技术实力与定制化服务能力,成功中标涵盖数字支付与金融科技、AI制造、游戏研发与发行、社交电商、互联网高科技等五个重点项目。这一系列合作成果,不仅是市场对中电金…

1195. 交替打印字符串

1195. 交替打印字符串 题目描述编写一个可以从 1 到 n 输出代表这个数字的字符串的程序,但是:如果这个数字可以被 3 整除,输出 "fizz"。如果这个数字可以被 5 整除,输出 "buzz"。如果这个数字…

企业微信ipad协议实现聚合聊天系统、RPA机器人智能回复

企业微信ipad协议实现聚合聊天系统、RPA机器人智能回复一、企业微信iPad协议技术解析 企业微信iPad协议是一种基于企业微信iPad版本的智能接口服务,通过自主研发的中间件技术实现企业微信生态功能的深度集成 。 与依赖…

2025年市面上别墅石材品牌与行业内别墅石材源头厂家推荐榜单及口碑好的别墅石材产品分析

摘要 随着高端住宅市场持续升温,别墅石材行业在2025年迎来新一轮发展机遇。消费者对石材品质、设计美感及供应链可靠性要求显著提升,本文基于市场调研数据及行业洞察,梳理当前别墅石材领域具有竞争力的品牌与企业。…

最近公共祖先 (LCA)

\(update : 2025/10/28\) 最近公共祖先, 即 \(LCA\) (\(Least\; Common\; Ancestor\)), 顾名思义, 用于在一棵树中求两个点的最近公共祖先 方法有很多, 效率和码量各有千秋 倍增法 很经典的 \(lca\) 求法, 主要是好理解…