【计算几何】和差化积及积化和差

本文设计知识点

计算几何

预备知识:三角和差公式

sin ⁡ ( α ± β ) = sin ⁡ α cos ⁡ β ± cos ⁡ α sin ⁡ β \sin(\alpha \pm \beta) = \sin\alpha \cos\beta \pm \cos\alpha \sin\beta sin(α±β)=sinαcosβ±cosαsinβ正弦和公式
cos ⁡ ( α + β ) = cos ⁡ α cos ⁡ β − sin ⁡ α sin ⁡ β \cos(\alpha + \beta) = \cos\alpha \cos\beta - \sin\alpha \sin\beta cos(α+β)=cosαcosβ−sinαsinβ余弦和公式
cos ⁡ ( α − β ) = c o s α cos ⁡ β + sin ⁡ α sin ⁡ β \cos(\alpha-\beta)=cos\alpha\cos\beta+\sin\alpha\sin\beta cos(α−β)=cosαcosβ+sinαsinβ 余弦差公式

积化和差

sin ⁡ α sin ⁡ β = 1 2 c o s ( α − β ) − cos ⁡ ( α + β ) \sin \alpha\sin \beta=\frac 1 2cos(\\alpha-\\beta)-\\cos(\\alpha+\\beta) sinαsinβ=21cos(α−β)−cos(α+β)式子一
cos ⁡ α cos ⁡ β = 1 2 cos ⁡ ( α + β ) + cos ⁡ ( α − β ) \cos \alpha\cos \beta=\frac 1 2\\cos(\\alpha+\\beta)+\\cos(\\alpha-\\beta) cosαcosβ=21cos(α+β)+cos(α−β)式子二
sin ⁡ a cos ⁡ β = 1 2 sin ⁡ ( α + β ) + sin ⁡ ( α − β ) \sin a\cos \beta=\frac 1 2\\sin(\\alpha+\\beta)+\\sin(\\alpha-\\beta) sinacosβ=21sin(α+β)+sin(α−β) 式子三

式子一证明:

右式= 1 2 cos ⁡ α cos ⁡ β + sin ⁡ a sin ⁡ β − cos ⁡ α cos ⁡ β + sin ⁡ α sin ⁡ β = sin ⁡ α sin ⁡ β \frac 1 2\\cos \\alpha\\cos \\beta+\\sin a\\sin \\beta-\\cos\\alpha\\cos\\beta+\\sin\\alpha\\sin\\beta=\sin\alpha\sin \beta 21cosαcosβ+sinasinβ−cosαcosβ+sinαsinβ=sinαsinβ

令 x = sin ⁡ α sin ⁡ β , y = cos ⁡ α cos ⁡ β , z = sin ⁡ a cos ⁡ β x=\sin \alpha\sin \beta ,y=\cos \alpha\cos \beta, z= \sin a\cos \beta x=sinαsinβ,y=cosαcosβ,z=sinacosβ

式子二右式= 1 2 ( y − x + y + x ) = y \frac 1 2(y-x+y+x)=y 21(y−x+y+x)=y

式子三右式= 1 2 ( z − w + z − w ) = z \frac 1 2(z-w+z-w)=z 21(z−w+z−w)=z

特别的 α = β \alpha=\beta α=β
sin ⁡ 2 a = 1 2 ( 1 − cos ⁡ 2 α ) \sin^2a=\frac 1 2 (1-\cos 2\alpha) sin2a=21(1−cos2α)
cos ⁡ 2 a = 1 2 ( cos ⁡ 2 α + 1 ) \cos^2a=\frac 1 2(\cos 2\alpha +1) cos2a=21(cos2α+1)
sin ⁡ α cos ⁡ α = 1 2 sin ⁡ 2 α \sin\alpha \cos\alpha=\frac 1 2 \sin 2\alpha sinαcosα=21sin2α

积化和差

sin ⁡ α + sin ⁡ β = 2 sin ⁡ ( α + β 2 ) cos ⁡ α − β 2 \sin \alpha+\sin \beta=2\sin(\frac {\alpha + \beta} 2)\cos\frac{\alpha-\beta}2 sinα+sinβ=2sin(2α+β)cos2α−β 式子一
sin ⁡ α − sin ⁡ β = 2 cos ⁡ ( α + β 2 ) sin ⁡ α − β 2 \sin \alpha-\sin \beta=2\cos(\frac {\alpha + \beta} 2)\sin\frac{\alpha-\beta}2 sinα−sinβ=2cos(2α+β)sin2α−β 式子二
cos ⁡ α + cos ⁡ β = 2 cos ⁡ ( α + β 2 ) cos ⁡ α − β 2 \cos \alpha+\cos \beta=2\cos(\frac {\alpha + \beta} 2)\cos\frac{\alpha-\beta}2 cosα+cosβ=2cos(2α+β)cos2α−β 式子三
cos ⁡ α − cos ⁡ β = − 2 sin ⁡ ( α + β 2 ) sin ⁡ α − β 2 \cos \alpha-\cos \beta=-2\sin(\frac {\alpha + \beta} 2)\sin\frac{\alpha-\beta}2 cosα−cosβ=−2sin(2α+β)sin2α−β 式子四

式子一右式= sin ⁡ α + sin ⁡ β \sin \alpha+\sin \beta sinα+sinβ 利用积化和差,其它三个式子也可以用积化和差证明。

扩展阅读

我想对大家说的话
亲士工具箱:支持AutoCad2013及以上
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
活到老,学到老。明朝中后期,大约50%的进士能当上堂官(副部及更高);能当上堂官的举人只有十余人。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771

如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17

或者 操作系统:win10 开发环境: VS2022 C++17

如无特殊说明,本算法用**C++**实现。

相关推荐
草莓熊Lotso17 分钟前
【C++ 基于微服务的即时通讯系统】基建三件套:gflags + gtest + spdlog 源码编译安装与实战入门
linux·网络·数据库·c++·微服务·log4j
H.莓飛29 分钟前
【C++】类与对象(末):static、友元与拷贝优化
linux·开发语言·c++·visual studio
sm_926787059 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
by209999 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
colinu9 小时前
C++ 异步任务与线程生命周期:`std::async`、`future`、`thread`、`jthread` 与协作式退出
java·jvm·c++
wuminyu10 小时前
ForkJoinPool窃取线程在扫描其他WorkQueue时的随机采样算法与Phase线程挂起唤醒机制解析
java·linux·c语言·jvm·c++
longlongzihan10 小时前
链表找环:Floyd 判圈算法(LeetCode 141 & 142 )
c++·算法·leetcode·链表
liulilittle10 小时前
Linux 下 select 测试函数
linux·服务器·网络·数据库·c++·select·c
无忧.芙桃11 小时前
C++语言原理与实践(十二):list类的底层实现
c++·windows·list
沫璃染墨11 小时前
《Linux工程实践篇(二):线程池实战——从线程安全单例到完整源码实现》
linux·开发语言·c++·单例模式·设计模式·系统架构