三角有两种表达方式,一种是人类喜欢的角度 Degree,一种是数学喜欢的弧度 Redian。

它们之间的转换为
r e d = d e g ∗ ( π / 180 ) = d e g ∗ 0.01745329 d e g = r e d ∗ ( 180 / π ) = r e d ∗ 57.29578 red = deg * (\pi / 180) = deg * 0.01745329\\ deg = red * (180 / \pi) = red * 57.29578\\ red=deg(π/180)=deg0.01745329deg=red(180/π)=red57.29578
我们无需手写,一般数学库中包含了角度与弧度的相互转换

Mathf.Red2Deg : 0.01745329

Mathf.Deg2Red :57.29578

正弦 sin 和 余弦 cos,还有一些其他形式三角函数
sec ⁡ θ = 1 cos ⁡ θ csc ⁡ θ = 1 sin ⁡ θ tan ⁡ θ = sin ⁡ θ cos ⁡ θ cot ⁡ θ = 1 tan ⁡ θ = cos ⁡ θ sin ⁡ θ \sec\theta = \frac{1}{\cos\theta}\qquad \csc\theta = \frac{1}{\sin\theta}\\ \tan\theta = \frac{\sin\theta}{\cos\theta}\qquad \cot\theta = \frac{1}{\tan\theta} = \frac{\cos\theta}{\sin\theta} secθ=cosθ1cscθ=sinθ1tanθ=cosθsinθcotθ=tanθ1=sinθcosθ
三角恒等式
sin ⁡ 2 θ + cos ⁡ 2 θ = 1 \sin^2\theta + \cos^2\theta = 1 sin2θ+cos2θ=1

一般的数学库还提供反三角函数,如AsinAcosAtan,它们可以将其转换为角度

三角函数在单位圆形位置表示
x = cos ⁡ θ y = sin ⁡ θ sin ⁡ θ 2 + cos ⁡ θ 2 = 1 x = \cos\theta\\ y = \sin\theta\\ \sin\theta^2+\cos\theta^2 = 1 x=cosθy=sinθsinθ2+cosθ2=1

在三角形的其他公式,如正弦定理,余弦定理

正弦定理
sin ⁡ A a = sin ⁡ B b = sin ⁡ C c \frac{\sin A}{a} = \frac{\sin B}{b} = \frac{\sin C}{c} asinA=bsinB=csinC
余弦定理
a 2 = b 2 + c 2 − 2 b c cos ⁡ A b 2 = a 2 + c 2 − 2 a c cos ⁡ B c 2 = a 2 + b 2 − 2 a b cos ⁡ C a^2 = b^2 + c^2 - 2bc\cos A\\ b^2 = a^2 + c^2 - 2ac\cos B\\ c^2 = a^2 + b^2 - 2ab\cos C\\ a2=b2+c22bccosAb2=a2+c22accosBc2=a2+b22abcosC

这里演示一个物体的随机旋转,确定一个围绕旋转的物体,然后生成多个物体围绕它旋转。

旋转中心

    public class TriangleText : MonoBehaviour{[SerializeField] private int _count = 5;[SerializeField] private float _radius = 2f;[SerializeField] private GameObject _prefab;void Start(){//获得弧度float red = 2 * Mathf.PI / _count;for (int i = 0; i < _count; i++){//获得位置Vector3 position = new Vector3(Mathf.Cos(red * i) * _radius, transform.position.y, Mathf.Sin(red * i) * _radius);//获得方向Quaternion quaternion = Quaternion.FromToRotation(Vector3.up, (transform.position - position).normalized);//创建Instantiate(_prefab, position + transform.position, quaternion);}}}

一个中心点

旋转物体

    [SerializeField] private float _rotationSpeed = 30f;[SerializeField] private Transform _point;private float _distance;private float _currentRed;private Quaternion _rondomRoation;private void Start(){_rondomRoation = Quaternion.AngleAxis(Random.Range(0f, 180f), Random.onUnitSphere);_rondomRoation = _rondomRoation.normalized;Debug.Log(_rondomRoation);_distance = (_point.position - transform.position).magnitude;_currentRed = Vector3.Angle(Vector3.right, transform.position) * Mathf.Deg2Rad;if (Vector3.Cross(Vector3.right, transform.position).y < 0)_currentRed += Mathf.PI;StartCoroutine(Rotation());}private IEnumerator Rotation(){while (true){_currentRed = (_currentRed + _rotationSpeed * Mathf.Deg2Rad * Time.deltaTime) % 360f;float x1 = Mathf.Cos(_currentRed) * _distance;float y1 = Mathf.Sin(_currentRed) * _distance;Vector3 position = new Vector3(x1, 0, y1);position = _rondomRoation * position + _point.position;Quaternion quaternion =Quaternion.FromToRotation(Vector3.up, (_point.position - transform.position).normalized);transform.SetPositionAndRotation(position, quaternion);yield return null;}// ReSharper disable once IteratorNeverReturns}

物体

效果图

20220720_155057

3D数学 - 三角函数相关推荐

  1. 收货详细假地址大全_【肖博数学】考生必看:高中数学三角函数公式大全(史上最全)...

    本文作者:vxmath 今天分享给大家史上最全高中数学高中数学三角函数公式大全是高考一定考的知识点,赶紧收藏学习吧! 高中三角函数公式大全:两角和公式.倍角公式.三倍角公式.半角公式 高中三角函数公式 ...

  2. 3D数学系列之——从“蒙的挺准”到“蒙的真准”解密蒙特卡洛积分!

    目录 1.前言 2.积分概念简单回顾 3.积分在程序计算上的困难 4.蒙特卡洛积分 5.一些扩展应用 1.前言   在学习3D数学的过程中,或者说在学习游戏开发.引擎开发.渲染器开发.Shader开发 ...

  3. 3D数学读书笔记——笛卡尔坐标系统

    本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24601215 1.3D数学 ...

  4. 《3D数学基础》提炼总结(一)3D数学和笛卡尔坐标系

    写在前面,想学好图形学,数学是必不可少的,市面上想找一本书既包括数学知识又与图形学和编程连续紧密的,这本书算是名气较大的,再加上很多语言比较通俗幽默,读起来不那么想睡觉,所以就是它啦(#^.^#).当 ...

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

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

  6. 3D数学读书笔记——向量运算及在c++上的实现

    本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661 开始之前:接 ...

  7. 3D数学系列之——再谈蒙特卡洛积分和重要性采样

    目录 一.前篇文章回顾 二.积分的黎曼和形式 三.积分的概率形式(蒙特卡洛积分) 四.误差 五.蒙特卡洛积分计算与收敛速度 六.重要性采样 七.重要性采样方法和过程 八.重要性采样的优缺点 一.前篇文 ...

  8. 3D数学读书笔记——矩阵基础番外篇之线性变换

    本系列文章由birdlove1987编写.转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25102425 前面有一篇文章 ...

  9. Unity 3D数学\图形学基础-游戏开发(向量)

    Unity 3D数学\图形学基础-游戏开发(向量) 向量运算的几何意义 标量与向量的计算 向量的模长 标准化向量 normalize 0向量 向量与向量的加减法 两点间距离公式(向量间距离) 点积,点 ...

最新文章

  1. 如何在asp.net中动态生成验证码
  2. 99%高精度、毫秒级延迟,AI便携式神经假肢让截肢14年患者运动自如
  3. MyBatis之八:需要说明的几个java api的生命周期以及封装
  4. 管理员所有权代码_为什么代码所有权糟透了,您永远不应该在有实践的地方工作...
  5. 使用PyTorch前向运算时出现“RuntimeError: Expected object of scalar type Long but got scalar type Float for ……”
  6. Java基础篇:字符串的简单介绍
  7. Windows查看计算机服务监听的端口号
  8. 【.NET程序员面试题----初级】第一卷
  9. http接口开发几种工具简单介绍
  10. 2021-03-12
  11. 设置ClickHouse默认用户default的密码
  12. windows服务器安全设置详解攻略
  13. 关于解决win10重装后右键单击一直转圈的问题
  14. 用python3实现HDU爬虫(后续可能更新VJ)2016.11.4更新
  15. EXT.NET复杂布局(一)——工作台
  16. 2022必撸八股!198道K8s/Docker/DevOps面试真题大汇总
  17. word的文档修订功能
  18. Linux中用命令导出数据库(mysql)
  19. Jbuilder2005开发小技巧
  20. 基于头脑风暴优化的BP神经网络(预测应用) - 附代码

热门文章

  1. 两台交换机形成环路!
  2. 高职学校计算机研讨内容,高职院校计算机文化基础课教学与计算机等级考试关系研讨...
  3. 微软试图导演互联网版的“赤壁之战”?
  4. 流程图,梳理基本流和备选流,编写测试用例
  5. 12月2日科技资讯|微信回应发原图泄露位置信息;Linux Kernel 5.4.1 发布
  6. imx6 通过移植XRM117x(SPI转串口)对Linux中的SPI驱动框架进行分析
  7. 55个美丽而独特的网站页眉设计欣赏
  8. 计算机毕业设计SSM鞍山丘比特房屋租赁管理系统【附源码数据库】
  9. 已经提交到gitlab上的代码如何撤回
  10. @CacheEvict