osg 矩阵相关

news2024/11/26 2:38:25

下面结果是一样的 

    osg::Matrix mtrixx;
    mtrixx.makeRotate(90 / 180.f * osg::PI, osg::Vec3(1, 0, 0));

    osg::Matrix mtrixx12 = osg::Matrix::rotate(90 / 180.f * osg::PI, 1, 0, 0);

备注: rotate或makerotate第一个参数是弧度,可以用  弧度值=osg::inDegrees(角度值)  得到弧度值,也可以用公式 : 角度值 / 180.f * osg::PI  来计算弧度值


下面结果是一样

    osg::Matrix m1;
    m1.makeTranslate(osg::Vec3(18, 12,3));

    osg::Matrix m2= osg::Matrix::translate(osg::Vec3(18, 12, 3));


下面结果是一样

    osg::Matrix mtrixxttt;
    mtrixxttt.makeScale(osg::Vec3(2, 3,3));

    osg::Matrix mtrixxppp = osg::Matrix::scale(osg::Vec3(2, 3, 3));

之所以一样是因为下面,




 下面两段代码是一样的,旋转90移动15,然后再转90然后再移动15

    osg::Matrix mtrixx;
    mtrixx.makeRotate(90 / 180.f * osg::PI, osg::Vec3(0, 1, 0));
    tr->setMatrix(mtrixx * tr->getMatrix());
    mtrixx.makeTranslate(osg::Vec3(15, 0, 0));
    tr->setMatrix(mtrixx * tr->getMatrix());
    mtrixx.makeRotate(90 / 180.f * osg::PI, osg::Vec3(0, 1, 0));
    tr->setMatrix(mtrixx * tr->getMatrix());
    mtrixx.makeTranslate(osg::Vec3(15, 0, 0));
    tr->setMatrix(mtrixx * tr->getMatrix());
    osg::Matrix mtrixx;
    tr->setMatrix(osg::Matrix::rotate(90 / 180.f * osg::PI, 0, 1, 0) * tr->getMatrix());
    tr->setMatrix(osg::Matrix::translate(osg::Vec3(15, 0, 0)) * tr->getMatrix());
    tr->setMatrix(osg::Matrix::rotate(90 / 180.f * osg::PI, 0, 1, 0) * tr->getMatrix());
    tr->setMatrix(osg::Matrix::translate(osg::Vec3(15, 0, 0)) * tr->getMatrix());




牛的局部坐标是这样的 



下面做一个实验 ,先构建这个关系,然后只比较位置

 然后在通过,下面值比较一下两者的区别

m_rpMtPosition->setMatrix(osg::Matrix::translate( osg::Vec3d(xx,xx,xx)));

m_rpPATposition->setPosition( osg::Vec3d(xx,xx,xx));



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2190402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pre-trained Natural Language Understanding for Task-Oriented Dialogue

前言 众所周知,预训练BERT语言模型在许多NLP任务重大放异彩,用来文本内容和语义的表征学习很有效果,而且大大降低了下游任务的训练时间。但是由于普通文本和任务型对话之间的语言模式的潜在差异,使得现在的预训练语言模型在实际使用中作用不大。 至于对话领域的预训练语言…

MS-900认证:Microsoft 365 Certified: Fundamentals

一、什么是MS-900认证? MS900认证,全称是 Microsoft 365 Fundamentals,是微软提供的一项认证考试,它旨在验证考生对 Microsoft 365 服务和功能的理解,包括云服务概念、核心服务、安全性、合规性、隐私以及支持和定价信…

【CTF Web】Pikachu CSRF(get) Writeup(CSRF+GET请求+社会工程学)

CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成…

IDEA的lombok插件不生效了?!!

记录一下,防止找不到解决方案,已经遇到好几次了 前面啰嗦的多,可以直接跳到末尾的解决方法,点击一下 问题现场情况 排查过程 确认引入的依赖正常 —》🆗 idea 是否安装了lombok插件 --》🆗 貌似没有问题…

锐键网络文档链接

锐键网络文档 锐键网络官网锐捷网络官网首页锐捷网络-场景创新,驱动数字未来锐键网络锐键网络产品中心锐键网络产品中心https://www.ruijie.com.cn/cp/锐键网络交换机【锐捷交换机】以太网交换机_网络交换机-锐捷网络锐键网络无线企业无线产品|无线网络设备-无线AP-…

Redis基础二(spring整合redis)

Springboot整合Redis 一、Springboot整合redis ​ redis可以通过使用java代码来实现 第一部分文档中 在终端操作redis的所有命令,Spring已经帮我们封装了所有的操作,所以变得很简单了。 ​ Spring专门提供了一个模块来进行这些操作的封装,这…

文件路径、文件系统操作、字节流字符流、文件内容操作、自己实现文件查找 删除 复制、IO报错:拒绝访问

目录 一、什么是文件 文件的分类 文件路径 二、文件系统操作 四、文件内容操作 字节流字符流 1)字节流(二进制文件) InputStream概述 FileInputStream 概述 OutputStream 概述 2)字符流(文本文件&#xf…

资料文档中心

华三文档中心 华三云计算文档中心各个方向(云计算 大数据 路由器 交换机 无线 物联网 安全 光模块 智能管理与运维 移动通信 服务器 存储 PON ICG信息通信 EPCN网关 License Server 其他产品 智能终端 传输产品 云简网络 商用终端 ALGC SMB 产品)云计算-云计算产品-云计算解决…

产品经理-需求分析

需求分析 1.什么是需求? 需求:其本质就是用户的预期,而预期与现状之间存在着差异,就出现了需求另外,用户提出需求时,都会基于某种目的所提出问题、建议或者想法 原始需求的目的是为了避免扯皮,…

基于Arduino的3D打印六足机器人

本项目是在原有项目基础上进行的改进,改进了六足机器人的姿态算法,使姿态在变化时更稳定 基于Arduino的3D打印六足机器人 一、项目说明二、所需配件三、3D打印四、机械腿部4.1腿部结构4.2腿部代码4.3 COPY腿部结构4.4伺服电机接线4.5 连接腿部结构 五、…

PD协议芯片ECP5701+充电管理芯片+升压芯片搭配应用TYPE-C口充电及升压供电系统

以往的电子设备需要有专门的电源适配器来供电,不仅需要大家区分不同设备的充电器,还要专门找地方来放置,还给用户带来了诸多不便。然而,TYPE-C接口,全称USB Type-C,迅速取代了传统的USB接口,成为…

【评测】湖北十堰大带宽300M高防云服务器

湖北十堰的高防服务器拥有高性能处理器、大容量DDR4 ECC内存、SSD硬盘及多种带宽配置,性价比高且配置灵活。它防御强劲,性能稳定可靠,扩展性佳,可满足各类企业需求,是优质服务器的绝佳选择。 清风云官网:ht…

【含文档】基于Springboot+Andriod的成人教育APP(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

如何正确输入IP地址前面的斜杠:详细指南

在网络配置和文档编写中,经常需要准确地输入IP地址及其子网掩码。IP地址前面的斜杠(/)用于表示子网掩码的位数,是一个重要的组成部分。然而,对于一些用户来说,输入这个斜杠可能会带来一些困惑。本文将详细介…

c++ union内存布局

// // Created by 徐昌真 on 2024/10/5. // #include <iostream> using namespace std;//定义一个union union Data{int a;char s[7]; //char值的范围(-128~127) }; int main() {//创建一个unionData d;d.s[0] 255; //16进制 0xFF 16进制F对应二进制 1111d.s[1] 1; …

国外电商系统开发-运维系统拓扑布局

点击列表中设备字段&#xff0c;然后定位到【拓扑布局】中&#xff0c;可以看到拓扑发生了变化 再回头&#xff0c;您再次添加一个服务器到系统中&#xff0c;并且选择该服务器的连接节点为您刚才创建的“SDN路由器”&#xff0c;保存后&#xff0c;您可以看到这个服务器连接着…

胡超:引领中美能源与文化合作的创意先锋

中美能源合作领域迎来了一个重要的历史时刻,2024年中美可持续发展峰会(Sino-American Symposium on Sustainable Development)在全球关注下圆满落幕。这场峰会不仅成为了中美两国绿色能源合作的高端平台,也展示了作为该活动的协办方RES(Reverse Energy Solutions)在清洁能源领域…

Django网站admin用户和组的权限机制

Step 1 创建超级用户 python manage.py createsuperuser 在终端输入 Step 2 输入用户名和密码 Step 3在网站上输入 127.0.0.1&#xff1a;8000/admin Step 4创建群组和用户 让创建的组和用户可以访问网站 def index(request):groupnameslist(request.user.groups.values(name)…

【api连接ChatGPT的最简单方式】

通过api连接ChatGPT的最简单方式 建立client 其中base_url为代理&#xff0c;若连接官网可省略&#xff1b;配置环境变量 from openai import OpenAI client OpenAI(base_url"https://api.chatanywhere.tech/v1" )或给出api和base_url client OpenAI(api_key&…

LC刷题专题:堆、大顶堆、小顶堆

文章目录 692. 前K个高频单词215. 数组中的第K个最大元素2336、无限集中的最小数字 这篇文章以后记录自己刷到的题目中与堆有关的。 692. 前K个高频单词 这个题目整体不难&#xff0c;是前k个高频元素的改进版&#xff0c;只需要在创建小顶堆时执行排序规则即可。如果出现次数…