首页 > 其他分享 >unity3d————三角函数

unity3d————三角函数

时间:2024-10-31 23:15:57浏览次数:5  
标签:unity3d rad 三角函数 0.5 Mathf 弧度 角度

先上代码,结合代码讲解:

public class Lesson2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        #region 知识点一 弧度、角度相互转化
        //弧度转角度
        float rad = 1;
        float anger = rad * Mathf.Rad2Deg;
        print(anger);

        //角度转弧度
        anger = 1;
        rad = anger * Mathf.Deg2Rad;
        print(rad);

        #endregion

        #region 知识点二 三角函数
        //注意:Mathf中的三角函数相关函数,传入的参数需要时弧度值
        print(Mathf.Sin(30 * Mathf.Deg2Rad));//0.5
        print(Mathf.Cos(60 * Mathf.Deg2Rad));//0.5
        #endregion

        #region 知识点三 反三角函数
        //注意:反三角函数得到的结果是 正弦或者余弦值对应的弧度
        rad = Mathf.Asin(0.5f);
        print(rad * Mathf.Rad2Deg);
        rad = Mathf.Acos(0.5f);
        print(rad * Mathf.Rad2Deg);
        #endregion
    }

}

知识点一:弧度与角度的相互转换

弧度转角度
  • 原理:在数学中,角度和弧度是两种测量角度大小的单位。弧度是基于半径的长度,而角度是基于一个圆被分成360等份的度数。
  • 转换公式角度 = 弧度 * (180/π),在Unity中,Mathf.Rad2Deg就是180/π的常量值。
  • 代码实现float anger = rad * Mathf.Rad2Deg; 将1弧度转换为角度,结果是大约57.2958度。
角度转弧度
  • 原理:与上述相反,将角度值转换为弧度值。
  • 转换公式弧度 = 角度 * (π/180),在Unity中,Mathf.Deg2Rad就是π/180的常量值。
  • 代码实现float rad = anger * Mathf.Deg2Rad; 将1度转换为弧度,结果是大约0.017453弧度。

知识点二:三角函数

  • 概述:三角函数是数学中描述角度和比例关系的重要函数,主要包括正弦(sin)、余弦(cos)、正切(tan)等。
  • Unity中的三角函数:Unity的Mathf类提供了这些函数的实现,但是需要注意的是,这些函数的参数必须是弧度值。
  • 代码示例
    • Mathf.Sin(30 * Mathf.Deg2Rad):计算30度的正弦值,结果是0.5。因为正弦值在0到180度范围内是从0增加到1再减少到0。
    • Mathf.Cos(60 * Mathf.Deg2Rad):计算60度的余弦值,结果也是0.5。余弦值在0到180度范围内是从1减少到-1。

知识点三:反三角函数

  • 概述:反三角函数是正弦、余弦、正切等函数的逆运算,用于根据已知的三角函数值求角度(弧度)。
  • Unity中的反三角函数:Unity的Mathf类提供了Asin(反正弦)、Acos(反余弦)、Atan(反正切)等函数,这些函数返回的是弧度值。
  • 代码示例
    • Mathf.Asin(0.5f):计算正弦值为0.5的弧度,结果是π/6(或30度)。
    • Mathf.Acos(0.5f):计算余弦值为0.5的弧度,结果是π/3(或60度)。
    • 需要注意的是,反三角函数的结果通常是在一个特定的范围内,例如AsinAcos的结果都在-π/2π/2之间。

总结

这个脚本展示了在Unity中处理角度和弧度转换、使用三角函数以及反三角函数的基础知识。这些知识点在游戏开发中非常重要,特别是在处理旋转、计算物体位置、模拟物理现象等方面。通过理解和应用这些数学原理,开发者可以创建出更加复杂和逼真的游戏世界。

标签:unity3d,rad,三角函数,0.5,Mathf,弧度,角度
From: https://blog.csdn.net/2401_82978699/article/details/143335432

相关文章

  • Unity3D学习FPS游戏(6)武器发射子弹
    前言:上一篇中设置好了武器的瞄准,本篇将实现一个武器发射子弹的效果。子弹子弹发射位置在Weapon01下面新建一个GameObject用来设置发射子弹的位置,调整Position放在枪口位置。子弹模型子弹模型在下面路径找到子弹模型,然后拖入到项目中,并右键Prefab-unpack(为了避免影响......
  • Unity3D教程:次表面散射的简单实现
    次表面散射指的是光线射入半透明材质,在内部发生散射后再透射出来的光线传播过程,考虑到有些项目会需要使用次表面散射,下面就给大家介绍下在Unity3D中次表面散射的简单实现,希望可以帮到大家。 一、前言本文旨在与大家一起探讨学习新知识,如有疏漏或者谬误,请大家不吝指出。以下内......
  • Unity3D c# 使对象物体始终面向摄像机
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassLookAtMainCamera:MonoBehaviour{ //Usethisforinitialization voidStart(){ } //Updateiscalledonceperframe voidUpdate(){......
  • 三角函数:基础知识&&Omega范围问题
    三角函数:基础知识&&Omega范围问题说是高考热门,其实也没怎么考过(我们知道,高中主要研究的三个三角函数的一般形式分别为:\(A\sin(\omegax+\varphi)+h\),\(A\cos(\omegax+\varphi)+h\),\(A\tan(\omegax+\varphi)+h\)。\(h\)由于作用太low啦作用不大,高中一般不予讨论,所......
  • Android平台Unity3D下如何同时播放多路RTMP|RTSP流?
    技术背景好多开发者,提到希望在Unity的Android头显终端,播放2路以上RTMP或RTSP流,在设备性能一般的情况下,对Unity下的RTMP|RTSP播放器提出了更高的要求。实际上,我们在前几年发布Unity下直播播放模块的时候,就已经支持了Android多实例播放RTMP|RTSP,随着大家对这块的技术诉求和性能要求越......
  • 音视频生态下Unity3D和虚幻引擎(Unreal Engine)的区别
    技术背景好多开发者跟我们做技术交流的时候,会问我们,为什么有Unity3D的RTMP|RTSP播放模块,还有RTMP推送和轻量级RTSP服务模块,为什么不去支持虚幻引擎?二者区别在哪里?本文就Unity3D和虚幻引擎之间的差异,做个大概的分析,实际上,Unity3D和虚幻引擎(UnrealEngine)在游戏开发及其他相关领域都......
  • 【高中数学/三角函数/判别式法】若正数a,b(a>b)满足1/(a+b)+1/(a-b)=1,则3a+2b的最小值
    【问题】若正数a,b(a>b)满足1/(a+b)+1/(a-b)=1,则3a+2b的最小值为?【出处】《解题卡壳怎么办--高中数学解题智慧剖析》P38页第一题首问余继光、苏德矿著 【解答】由1/(a+b)+1/(a-b)=1,展开后可得(a-1)^2-b^2=1可设a=1+1/cosθ,b=sinθ/cosθ代入3a+2b得f(θ)=3+3/cosθ+......
  • 【高中数学/三角函数/判别式法】设x>0,y>0,x+2y=5,则(x+1)(2y+1)/(xy)^0.5的最小值为?
    【问题】设x>0,y>0,x+2y=5,则(x+1)(2y+1)/(xy)^0.5的最小值为?【出处】《解题卡壳怎么办--高中数学解题智慧剖析》P38页第3题首问余继光、苏德矿著 【解答】由x+2y=5可设x=5cosθ^2,y=5sinθ^2/2代入目标式得(x+1)(2y+1)/(xy)^0.5=(5cosθ^2+1)(5sinθ^2+1)/5cosθsin......
  • Unity3D下如何播放RTSP流?
    技术背景在Unity3D中直接播放RTSP(RealTimeStreamingProtocol)流并不直接支持,因为Unity的内置多媒体组件(如AudioSource和VideoPlayer)主要设计用于处理本地文件或HTTP流,而不直接支持RTSP。所以,你可以通过一些间接的方法来实现RTSP流的播放,或者通过比较成熟的第三方插件来播。可选方......
  • Unity3D下如何播放RTSP流?
    技术背景在Unity3D中直接播放RTSP(RealTimeStreamingProtocol)流并不直接支持,因为Unity的内置多媒体组件(如AudioSource和VideoPlayer)主要设计用于处理本地文件或HTTP流,而不直接支持RTSP。所以,你可以通过一些间接的方法来实现RTSP流的播放,或者通过比较成熟的第三方插件来播。......