Unity Mathf【Deg & Rad】- 关于数学运算中的度与弧度

简介: Unity Mathf【Deg & Rad】- 关于数学运算中的度与弧度

Mathf中的三角函数是我们常用的数学运算函数,在使用过程中需要注意参数的单位,以Sin正弦函数为例,我们都知道30度角的正弦函数结果为0.5,那么当我们调用Mathf.Sin函数时,假如我们传入30,则可以发现其结果并不是0.5:

Debug.Log($"Mathf.Sin(30) => {Mathf.Sin(30f)}");

image.gif

image.gif

原因是其参数并不是以Degree度为单位,而是以Radians弧度为单位:

// 摘要://     Returns the sine of angle f.// 参数://   f://     The input angle, in radians.// 返回结果://     The return value between -1 and +1.publicstaticfloatSin(floatf);

image.gif

那么什么是弧度,百科词条中这样定义:弧长等于半径的弧,其所对的圆心角为1弧度。(即两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角的弧度为1)。

根据定义,一周的弧度数为2πr/r,即2π,那么1度等于2π/360,约等于0.01745弧度。

image.gif

因此我们在调用Mathf.Sin时,假设角度为30度,那么需要乘以近似值0.01745再作为参数传入,Mathf类中定义了这个常量,即Deg2Rad(度转弧度):

// 摘要://     Degrees-to-radians conversion constant (Read Only).publicconstfloatDeg2Rad=0.0174532924F;

image.gif

Debug.Log($"Mathf.Sin(30f * Mathf.Deg2Rad) => {Mathf.Sin(30f * Mathf.Deg2Rad)}");

image.gif

image.gif

Mathf中同样定义了弧度转度的常量,Rad2Deg:

// 摘要://     Radians-to-degrees conversion constant (Read Only).publicconstfloatRad2Deg=57.29578F;

image.gif

那么我们在使用反正弦函数时,需要用到该常量:

// 摘要://     Returns the arc-sine of f - the angle in radians whose sine is f.// 参数://   f:publicstaticfloatAsin(floatf);

image.gif

Debug.Log($"Mathf.Asin(0.5f) * Mathf.Rad2Deg => {Mathf.Asin(0.5f) * Mathf.Rad2Deg}");

image.gif

image.gif

目录
相关文章
|
C# 图形学
Unity基础——3D数学
Unity基础——3D数学
242 0
|
图形学
Unity3d数学基础之向量
这只是基础的一些数学知识,后面会为大家整理一些,unity中如何使用向量,向量在unity中的各种算法及其运算法则与mathf函数的使用。 向量是2D、3D数学研究的标准工具,在3D游戏中向量是基础。
993 0
|
图形学
Unity3d数学基础之坐标系
笛卡尔坐标系的定义 : 1、每个2D笛卡尔坐标系都有一个特殊的点,称为原点(0,0)它是坐标系的中心。 2、每个2D笛卡尔坐标系都有两条过原点的直线向两边无限延伸,称为轴,两个轴互相垂直。
1132 0
|
算法 图形学
Unity3dCG语言编写Shader之必备数学、图形学知识
引言计算机图形学Computer Graphics,简称CG是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。
1030 0
|
图形学
Unity Mathf/Math数学运算函数说明全集(Chinar总结)
Unity Mathf 数学函数库 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —...
3417 0
|
5月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
275 4
|
5月前
|
前端开发 图形学 开发者
【独家揭秘】那些让你的游戏瞬间鲜活起来的Unity UI动画技巧:从零开始打造动态按钮,提升玩家交互体验的绝招大公开!
【9月更文挑战第1天】在游戏开发领域,Unity 是最受欢迎的游戏引擎之一,其强大的跨平台发布能力和丰富的功能集让开发者能够迅速打造出高质量的游戏。优秀的 UI 设计对于游戏至关重要,尤其是在手游市场,出色的 UI 能给玩家留下深刻的第一印象。Unity 的 UGUI 系统提供了一整套解决方案,包括 Canvas、Image 和 Button 等组件,支持添加各种动画效果。
306 3
|
5月前
|
设计模式 存储 人工智能
深度解析Unity游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
304 3