Unity3D C#数学系列之三角函数
目录
- 1 定义
- 2 常用公式推导
- 2.1 sin²θ + cos² = 1
- 2.2 sinθ = cos(90°-θ)、 cosθ = sin(90°-θ)
- 2.3 sin(-θ) = -sinθ、 cos(-θ) = cosθ
- 2.4 sin(90°+θ) = cosθ 、cos(90°+θ)=-sinθ
- 2.5 余弦定理
- 2.6 正弦定理
- 2.7 cos(θ-β) = cosθ*cosβ + sinθ*sinβ
- 3 三角函数图像性质
- 4 Unity中三角函数常用到的地方
1 定义
三角函数的定义:在一个平面直角坐标系中,以原点为圆心,1为半径画圆,交x轴于A点。以圆心O为旋转中心,将A点逆时针旋转θ度(一般规定逆时针旋转为正方向)至点B,设此时B点的坐标为(x, y)。
那么此时,y的值就叫做θ的正弦,记作sinθ。
x的值就叫做θ的余弦,记作cosθ。
y/x的值就叫做θ的正切,记作tanθ。
2 常用公式推导
2.1 sin²θ + cos² = 1
因为上图中单位圆上点满足x²+y²=1,又x=sinθ,y=cosθ。
所以sin²θ+cos²θ=1。
2.2 sinθ = cos(90°-θ)、 cosθ = sin(90°-θ)
如上图,θ+β=90°。
则有sinθ=y=cosβ=cos(90°-θ)。
cosθ=x=sinβ=sin(90°-θ)。
2.3 sin(-θ) = -sinθ、 cos(-θ) = cosθ
如图,可知sin(-θ)=-y=-sinθ,cos(-θ)=x=cosθ。
2.4 sin(90°+θ) = cosθ 、cos(90°+θ)=-sinθ
如图,根据三角函数的定义sin(90°+θ)=y’,cos(90°+θ)=x’。
又△B‘y’o全等于△BxO,有y’=x,x’=-y。
于是sin(90°+θ)=y’=x=cosθ,cos(90°+θ)=x’=-y=sinθ。
同理可得sin(180°+θ) = -sinθ,cos(180°+θ) = -cosθ。
2.5 余弦定理
余弦定理主要用来解答三角形中已知两边长度及其夹角,求第三边的长度的问题。
如图,已知AB、AC的长分别为c、b,及AB、AC的夹角为θ,求BC的长度a为多少?
公式为:a² = c²+b²-2bccosθ。
解法如下:
过B点做AC的垂线BD。
2.6 正弦定理
如图,已知△ABC外接圆的半径为r,则有a=2rsin∠A,b=2rsin∠B,c=2rsin∠C。
推导过程如下:
如图,设O为外接圆的圆心,则△AOB、△BOC、△AOC均为等腰三角形。
所以,∠A+∠B+∠C = (β+θ) + (β+γ) + (γ+θ) =2(β+θ+γ)= 180°
即β+θ+γ = 90°。
做辅助线OD垂直AC与点D。
可知AD = b/2。
则有
又
故
同理可得
2.7 cos(θ-β) = cosθcosβ + sinθsinβ
此公式推导过程如下:
△OBB’中,根据余弦定理有
又有
故
利用上面这个公式,咱们还可以推导出其他公式。
比如,我们设β = 90°-α,代入上面公式,则有
即
3 三角函数图像性质
4 Unity中三角函数常用到的地方
上面说了这么多,三角函数到底有什么用?
①在Unity中,只要涉及到旋转和角度,就不可避免的要用到三角函数,比如不同坐标系的变换矩阵、向量的点积和叉积等
②sin和cos函数是周期波动的,我们可以用这个性质来模拟旗帜的飘动和水的波动
③任何信号经过傅里叶变换都可以分解为无数正余弦信号的叠加,我们可以通过这些正余弦信号的频率和幅值得出一些有意义的信息,比如图片中是否有噪声
④欧拉公式
博主个人博客本文链接。
Unity3D C#数学系列之三角函数相关推荐
- Unity3D C#数学系列之矩阵基础
目录 1 引言 2 矩阵的作用 3 矩阵的乘法 3.1 矩阵与标量的乘法 3.2 矩阵与矩阵的乘法 4 特殊矩阵 4.1 方块矩阵 4.1.1 对角矩阵 4.1.2 单位矩阵 4.2 转置矩阵 4.3 ...
- Unity3D C#数学系列之判断两条线段是否相交并求交点
1 引言 问题:已知三维空间中四点A.B.C.D,如何判断线段AB与CD是否相交,若相交则求出交点. 分析: AB.CD要相交,则AB.CD必须要在同一平面内 快速排斥和跨立实验判断是否相交 几何法分 ...
- Unity3D C#数学系列之点积
文章目录 1 定义 2 几何意义 3 向量a·向量b = xaxb+yayb+zazb 4 应用案例 4.1 求两向量的夹角 4.2 判断两向量是否垂直 4.3 判断NPC是否在攻击范围内 4.4 已 ...
- 【浅墨Unity3D Shader编程】之三 光之城堡篇:子着色器、通道与标签的写法 amp; 纹理混合...
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://hpw123.net/a/C__/kongzhitaichengxu/2014/1117/120.html 作者:毛星 ...
- 【Unity3D Shader编程】之三 光之城堡篇:子着色器、通道与标签的写法 纹理混合
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/41175585 作者:毛星云(浅墨) ...
- NumPy之三角函数、舍入函数
NumPy之三角函数.舍入函数 NumPy 包含大量的各种数学运算功能. 三角函数 NumPy拥有标准的三角函数,它为弧度制单位的给定角度返回三角函数比值. import numpy as np a ...
- 《CNN笔记总结系列之三》激励层
<CNN笔记总结系列之三>激励层 -------本文仅为学习笔记,不做任何商业用途------- 前言 <CNN笔记总结系列>前两部分简要介绍了CNN的数据输入层以及卷 ...
- SCCM2012系列之三,SCCM2012部署前的IIS准备
SCCM2012系列之三,SCCM2012部署前的IIS准备 IIS是SCCM2012中非常重要的部署条件.SQL Server,WSUS等产品都需要IIS的支持.因此,完成Active Direct ...
- 活动目录系列之三---域控制器常规卸域
活动目录系列之三---域控制器常规卸域 在介绍正题之前,先补充很多人提出的一个疑问,就是什么情况下计算机名系统不让更改,其实很简单,当在域情况下,用非管理员登陆域,即计算机名就不让更改,运行---CM ...
最新文章
- MSSQL 漏洞利用与提权
- java app上传图片接口_接口app 接口中上传 图片
- 链接和作用域2 - C++快速入门43
- 算法之如何进行算法复杂度分析
- 组合破解windows域账号
- CCF大专委2018年大数据发展趋势预测
- php 中curd表达啥,thinkphp的CURD和查询方式介绍
- (八大方法、逐层深入,有你一定没见过的)使用INSERT语句向表中插入数据
- 【英语学习】【Level 08】U01 Let's Read L2 Of fairies and princesses
- Python使用模块中对象的几种方法
- 深度神经网络编程细节
- 我的java编程之路小小总结感想
- ————————————————素数的快速判断方法————————————————————...
- C语言单片机笔试题,c语言面试题集(单片机
- windows开机启动方法
- 阿里IOT云平台(二)---10分钟物联网设备接入阿里云IoT平台
- 【SSM - SpringMVC篇】03 - SpringMVC的参数绑定 - 参数自动绑定 - javabean对象参数绑 - 嵌套bean参数绑定
- IPv6连接测试通过,但是无法ping成功问题解决(记录)
- Sigar 获取CPU和Memory内存等信息使用详解
- 宝宝长牙发烧怎么办?会自己退吗?
热门文章
- python四瓣花代码_小蛇学python(14)K-means预测花朵种类
- Hololens基础开发
- 分页查询,但是页面只重复显示一条数据
- 虚拟机pycharm 路径设置_Pycharm连接虚拟机
- 【linux iic子系统】i2c设备的添加方法(四)
- oracle的种子文件,Oracle用RMAN还原种子数据库
- 臭氧效果器免安装版 – iZotope Ozone Advanced v9.1.0 WiN
- 简约代码表白_java简短表白代码是什么
- Mendix开发网页移动App项目考虑因素
- 在SharePoint管理中心管理SharePoint Designer设置