紧接上一篇:http://blog.csdn.net/yinhun2012/article/details/79384273

这一篇我们来推导一些常用的三角函数公式,主要方便以后图形程序中的计算。

1.余弦定理公式

余弦定义主要作用是依靠已知三角形的两条边及其夹角,求第三边的情况,如下图:

这里我们不处理向量(矢量)运算,单纯的从标量数值长度的推算入手,建立垂线后,得到的直角三角形ADC,可以通过勾股定理(前面推过)和sin²α+cos²α=1得到上面两个公式,后面的公式对我们求角度有很大帮助,而且这两个公式对后面图形方面计算会起到很大的帮助。

1.正弦定理的推导,前面有余弦定理,那么肯定就有一个对应的正弦定理了。

ps:这里要了解一个外接圆的概念,就是三角形△ABC的三个顶点都在一个圆上,那么这个圆就是△ABC的外接圆,其实这个也好反向理解,比如我们先画一个圆,然后任意在圆上取三点,连接三点就是一个三角形,但是假如我们不知道三角形的外接圆,要怎么去绘画和证明呢,如下图:

上面我们通过两条垂直平分线,就能得到△AOB和△BOC,且两三角形为等腰三角形(这个很好看出来,△AOB被平分成共边的两个一样的直角三角形),那么OA = OB = OC,所以O为圆心做半径OA的圆就是外接圆了。

接下来继续推导正弦公式,如下图:

上面我们推导了外接圆,那么接下来我们只需要建立等腰三角形△AoB △AoC △ BoC,将∠A转化成∠θ,就能得到上面的正弦定理了。

接下来到实际程序应用环节了,其实在实际项目开发中,余弦定理我用的还是挺多的,比如:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AngleFunc : MonoBehaviour {public GameObject PointA;public GameObject PointB;public GameObject PointC;void Start(){{  //构建一个三角形GameObject[] gos = new GameObject[3];gos[0] = PointA;gos[1] = PointB;gos[2] = PointC;for (int i = 0; i < gos.Length; i++){LineRenderer line = gos[i].AddComponent<LineRenderer>();line.positionCount = 2;line.startWidth = 0.1f;line.endWidth = 0.1f;int index = i + 1;if (index >= gos.Length)index = 0;line.SetPosition(0, gos[i].transform.position);line.SetPosition(1, gos[index].transform.position);}}//用余弦定理计算角度Vector3 AB = PointB.transform.position - PointA.transform.position;Vector3 BC = PointC.transform.position - PointB.transform.position;Vector3 AC = PointC.transform.position - PointA.transform.position;//计算∠A的夹角float angle1 = Mathf.Acos((getVectorLengthPow2(AB) + getVectorLengthPow2(AC) - getVectorLengthPow2(BC)) / (2 * Mathf.Sqrt(getVectorLengthPow2(AB) * getVectorLengthPow2(AC)))) * Mathf.Rad2Deg;//用自带的api计算角度float angle2 = Vector3.Angle(AB, AC);
#if UNITY_EDITORDebug.LogFormat("angle1 = {0} angle2 = {1}", angle1, angle2);
#endif}private float getVectorLengthPow2(Vector3 vec){return Mathf.Pow(vec.x, 2) + Mathf.Pow(vec.y, 2) + Mathf.Pow(vec.z, 2);}}

代码比较少,直接贴上来了,主要就是用三角函数计算夹角值,其实unity中有自带的api,但是我们要知道公式的推导来源

三角函数:正弦余弦定理及应用相关推荐

  1. java中反三角函数怎么写,Java 数学三角函数正弦、余弦、正切以及反正弦、反余弦、反正切函数的使用...

    Java 数学三角函数正弦.余弦.正切以及反正弦.反余弦.反正切函数的使用 Java中数据三角函数在Math类里面有封装好的对应方法,正弦函数是sin方法,余弦函数是cos方法,正切函数是tan方法, ...

  2. 使用Python实现拉马努金的三角函数正弦公式

    最近其实是在看<数学女孩>的书籍,看着看着觉得中间的故事情节确实是累赘了.切换一下思维,找来了之前看过的拉马努金的故事.看到了其中的公式之后,简单实用程序实现了一下,做一下简单的验证. 在 ...

  3. 三角函数π/2转化_可打印丨初中数学三角函数公式

    朗读君提醒 点击图片跳转至小程序 即可[下载打印] ▼ 定义式 锐角三角函数 任意角三角函数 图形 直角三角形 任意三角函数 正弦(sin) 余弦(cos) 正切(tan或tg) 余切(cot或ctg ...

  4. 计算机用三角函数时如何用弧度制,三角函数1任意角和弧度制.PPT

    三角函数1任意角和弧度制 ●课程目标 1.知识与技能目标 (1)了解任意角的概念和弧度制,能正确地进行弧度与角度的互化. (2)借助单位圆理解任意角三角函数(正弦.余弦.正切)的定义. (6)结合具体 ...

  5. 如何设置弧度 html,JavaScript中弧度和角度的转换

    弧度 = 角度 * Math.PI / 180 角度 = 弧度 * 180 / Math.PI 在JavaScript Math 对象中: sin() 方法可返回一个数字的正弦. tan() 方法可返 ...

  6. band math函数_ENVI波段运算(bandmath)运算逻辑及常用运算符详解

    最近用ENVI做了下区域绿化覆盖度的分析,也算是简单应用了下ENVI这个软件,这篇简单介绍下ENVI的波段运算的运算逻辑和常用的运算符. BandMath工具能够方便的执行图像中各个波段的加.减.乘. ...

  7. 罗德里格斯(Rodrigues)旋转方程推导

    罗德里格斯旋转方程是从角度和向量计算出相应的旋转矩阵,这个旋转方程在很多方面有重要的应用,这里简要概述一下方程的推导过程. 主要参考资料是维基百科,其实基本上就是翻译一下,自己走一遍这个推导过程,这里 ...

  8. numpy基础笔记01

    import numpy as np # padas是numpy的升级版本 # numpy属性 #列表转换成矩阵 array=np.array([[1,2,3],[4,5,6]]) print(arr ...

  9. 用Mathematica和SciPy阐明Jacobi椭圆函数的定义方法

    这,这个,那,那个Jacobi椭圆函数SN和CN类似于三角函数正弦和余弦.它们出现在非线性振动和保形映射等应用中.不幸的是,定义这些函数有多种约定.这篇文章的目的是澄清围绕这些不同公约的混淆. 上面的 ...

  10. matlab adaptfilt.rls,基于RLS算法的多麦克风降噪

    <信息处理课群综合训练与设计> 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 基于RLS算法的多麦克风降噪 设计任务: 给定主麦克风录制的受噪声污染的语音信号和 ...

最新文章

  1. Digital Realty计划在德克萨斯州建设三层数据中心
  2. linux_OEL5.4_安装Oracle11g中文教程图解
  3. python 描述器_python 描述器
  4. Netty 在 Dubbo 中是如何应用的?
  5. ThinkJava-复用类
  6. 林鹏:解析P2P金融安全风险
  7. SAP UI5 jQuery.sap.getModulePath 的工作原理
  8. 前端学习(3314):提取action
  9. Centos7搭建Redis,同一服务器启动两个端口的Redis
  10. 配置mysql 问题解决
  11. BackgroundWorker的包装器
  12. php行为和事件是什么,Yii Framework框架中事件和行为的区别及应用实例分析
  13. 低危漏洞- X-Frame-Options Header未配置
  14. mangodb和php比较,php-mongodb从不同的数据库中选择
  15. python车流量检测车流统计车辆计数yolov5 deepsort车流检测
  16. 2021最新Java JDK1.8的安装教程
  17. Linux运维——Vim编辑器
  18. 数据湖技术之Hudi 集成 Spark
  19. mutual information matlab,Mutual information and Normalized Mutual information 互信息和标准化互信息...
  20. AI元宇宙敲门砖【3.2】:太好听了吧,和AI一起唱,一起做虚拟偶像

热门文章

  1. 金九银十,果然如此,这个九月有点折腾
  2. app后端开发系列文章文件夹
  3. python人机交互界面
  4. Android连接MySQL数据库
  5. GNSS《GPS测量原理及应用》复习题集
  6. python中的get用法
  7. 世界500强企业名称中英对照
  8. 通过Vue解决跨域问题(proxy配置代理)
  9. 基于JESD204B的LMK04826时钟芯片开发笔记
  10. 主打python-2021年度总结-展望2022年