热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#如何实现欧拉角与四元数之间的转换

小编给大家分享一下c#如何实现欧拉角与四元数之间的转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章

小编给大家分享一下c#如何实现欧拉角与四元数之间的转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

//欧拉角转四元数

void cjx_from_euler(float roll, float pitch, float yaw)

{

    float cr2 = cosf(roll*0.5f);

    float cp2 = cosf(pitch*0.5f);

    float cy2 = cosf(yaw*0.5f);

    float sr2 = sinf(roll*0.5f);

    float sp2 = sinf(pitch*0.5f);

    float sy2 = sinf(yaw*0.5f);

    q1 = cr2*cp2*cy2 + sr2*sp2*sy2;

    q2 = sr2*cp2*cy2 - cr2*sp2*sy2;

    q3 = cr2*sp2*cy2 + sr2*cp2*sy2;

    q4 = cr2*cp2*sy2 - sr2*sp2*cy2;

}

#define RAD_TO_DEG 57.29577951f

//弧度转角度

float degrees(float rad) 

{

return rad * RAD_TO_DEG;

}

//四元数转欧拉角

void cjx_to_euler(float *roll, float *pitch, float *yaw)

{

    if (roll) {

        *roll = degrees(atan2f(2.0f*(q1*q2 + q3*q4),1 - 2.0f*(q2*q2 + q3*q3)));

    }

    if (pitch) {

        // 使用safe_asin()来处理pitch接近90/-90时的奇点

        *pitch = degrees(safe_asin(2.0f*(q1*q3 - q2*q4)));

    }

    if (yaw) {

        *yaw = degrees(atan2f(2.0f*(q2*q3 - q1*q4), 2.0f*(q1*q1 + q2*q2) - 1));

    }

}

以上是“c#如何实现欧拉角与四元数之间的转换”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程笔记行业资讯频道!


推荐阅读
  • Javascript的模块化编程Javascript在设计之初并没有提供一种原生的,语言级别的模块化方式来组织代码,比如Java语言通过package和import来管理和使用模块 ... [详细]
  • 前后端分离 以及使用工具 基础
    前后端分离开发YapiSwagger项目部署在项目中,前端代码和后端代码混合在一起,是存在问题的,存在什么问题呢?主要存在以下几点问题:1).开发人员同时负责前端和后 ... [详细]
  • 计算球体的体积和表面积原文:https://www.gees ... [详细]
  • 如何为沉浸式 WEB 做准备
    我们所知道的网站很快就会发生变化。在2D浏览器窗口中使用文本、图像和基本交互的日子已经为我们提供了很好的服务,但虚拟、增强和混合现实体验一直在变得更好。开发人员和设计人员需要超越浏 ... [详细]
  • php从哪里得到框架(2023年最新分享)
    导读:本篇文章编程笔记来给大家介绍有关php从哪里得到框架的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、如何用PHP制 ... [详细]
  • cookie中path路径探讨
    上篇文章中说:cookie必须在同一网站下且cookie的path路径为当前url或者是当前url的父级时才是共享的。具体怎 ... [详细]
  • JavaScript对大小写敏感。JavaScript对大小写是敏感的。当编写JavaScript语句时,请留意是否关闭大小写切换键。函数getElementById ... [详细]
  • 如何解决WebView重定向行为导致多次加载的问题
    这篇文章主要介绍如何解决WebView重定向行为导致多次加载的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用WebV ... [详细]
  • MVC 外网  上传 下载 实现方式(一)
    本人在实现第三方文件存储时,为实现Web网络的上传和下载的实现费了一些时间,然后总结到的一些问题:如有思路狭隘之处还望指正! ... [详细]
  • 知识付费时代,你怎么看?
    一直以来,免费都是互联网时代的主旋律。冷不丁,蹦出个收费的东西,多少让我们这些年轻人觉得是那样的不可思议。就像当年,我们父母 ... [详细]
  •   新开仿盛大传奇私服`qq无会员设置!无会员区`!托管广东电信`!高速`!长期稳定~!  特别介绍:  新增怪物“日本兵“,“山 ... [详细]
  • Windows7上任务栏中的.NET进度条如何让我的winforms应用程序在Windows7的任务栏图标中显示其进度条?例如:带下载的chrome。谢谢!!迭戈您必须下载适用于. ... [详细]
  • 开发笔记:AJAX了解内容
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了AJAX了解内容相关的知识,希望对你有一定的参考价值。1.什么是AJAX?AJAX ... [详细]
  • 提高数据库处理速度的利器——MySQL存储过程详解
    数据库|mysql教程处理速度,MySQL,存储过程数据库-mysql教程秒支付宝源码,评价vscode,ubuntu没有文件或目录,tomcatrfc,sqlite写入太慢,服务 ... [详细]
  • php下载随机api图片_PHP随机风景图片接口源码
    #(滑稽)再也不用bing每日图片了,用大米API自己也能换风景图所有图片格式均为.JPG,支持JSON输出。***2019-12-16*header( ... [详细]
author-avatar
mobiledu2502887531
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有