码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Unity把余弦值转成弧度和角度


     Unity 中通过向量点成可以计算出cos<夹角>=DOT(A,B);

    但是Mathf.Acos(点乘后的结果) 得出的是把余弦值转换成弧度

    我们需要除以Mathf.Deg2Rad 才可以转换成角度!

    //拿到一个物体的前方向量

    Vector3 RoleForwardV = MainRole.transform.forward;

    //计算另一个物体与当前物体连线方向向量

    Vector3 RoleToMonsterV = Monster.transform.position - MainRole.transform.position;

    //点乘两个单位向量

    float DotResult = Vector3.Dot(RoleForwardV, RoleToMonsterV.normalized);
    float Jiaodu = Mathf.Acos(DotResult ) / Mathf.Deg2Rad;//这是两个向量夹角角度

    1. Mathf.Acos(DotResult); //--它计算余弦值对应的弧度
    2. Mathf.Acos(DotResult)/Mathf.Rad2Deg; //--它计算余弦值对应的角度

    赠送一个完整的点乘、叉乘代码示例:

    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. public class vEC : MonoBehaviour
    5. {
    6. public GameObject ONECUBE;
    7. public GameObject onesphere;
    8. // Dot 需要一个物体前方向量 连线向量
    9. void Update()
    10. {
    11. Vector3 oneFront = ONECUBE.transform.forward;//拿到物体前方向量
    12. Vector3 cubeTosphere =(ONECUBE.transform.position - onesphere.transform.position).normalized;
    13. Debug.Log(cubeTosphere.magnitude);//(2,1,2)
    14. float dotresult= Vector3.Dot(oneFront, cubeTosphere);
    15. //cos(a)=dotresult
    16. if (dotresult>0)
    17. {
    18. Debug.Log("0-90 前方");
    19. //onesphere.transform.Translate(cubeTosphere*10f*Time.deltaTime);
    20. }
    21. float Jiaodu = Mathf.Acos(dotresult) / Mathf.Deg2Rad;//这是两个向量夹角角度
    22. Debug.Log("两个向量的夹角是"+Mathf.Acos(dotresult)/Mathf.Deg2Rad+"度");
    23. Debug.DrawRay(ONECUBE.transform.position,ONECUBE.transform.forward*100f);
    24. Debug.DrawRay(ONECUBE.transform.position, cubeTosphere * 100f);
    25. Vector3 oneCross = Vector3.Cross(oneFront, cubeTosphere);//向量叉乘X
    26. Debug.DrawRay(oneFront, oneCross*100,Color.red);
    27. }
    28. }

  • 相关阅读:
    无法将RELEASE.pom上传到nexus的解决办法
    基于Hadoop+协同过滤算法+可视化大屏的岗位推荐系统设计与实现(可二开任何招聘系统,校园招聘,公司招聘,计算机岗位招聘)
    L10.linux命令每日一练 -- 第二章 文件和目录操作命令 -- find和xargs命令
    ArcGIS Pro SDK (四)框架 2
    项目管理:敏捷开发之十大误区
    iperf/iperf3 测试网络性能
    计算机毕业设计Javaweb硕士研究生招生考试专业报考查询及学习系统设计与实现(源码+系统+mysql数据库+lw文档)
    ES6模块化
    关于torch.dist(p=2)和nn.MESLoss的区分
    Docker容器嵌入式开发:在Ubuntu上配置Hive
  • 原文地址:https://blog.csdn.net/leoysq/article/details/134080882
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号