当前位置: 首页 > wzjs >正文

免费做推广的网站今天上海重大新闻事件

免费做推广的网站,今天上海重大新闻事件,香港访问大陆网站,phpcms 生成网站地图在前面的学习中,我们对 OpenSceneGraph(OSG)有了基础的认识。 今天,我们将深入探讨 OSG 中的坐标系和变换节点(Transform),并通过平移、旋转、缩放模型以及父子节点层级变换的实战操作,加深对这些概念的理解。 坐标系 1. 基础坐标系 在 OSG 里,使用的是右手坐标系…

请添加图片描述
在前面的学习中,我们对 OpenSceneGraph(OSG)有了基础的认识。

今天,我们将深入探讨 OSG 中的坐标系和变换节点(Transform),并通过平移、旋转、缩放模型以及父子节点层级变换的实战操作,加深对这些概念的理解。

坐标系

1. 基础坐标系

在 OSG 里,使用的是右手坐标系。

右手坐标系遵循右手定则:伸出右手,让大拇指指向 X 轴正方向,食指指向 Y 轴正方向,那么中指所指的方向就是 Z 轴正方向。

了解这个坐标系对于理解模型的变换非常关键,因为所有的平移、旋转和缩放操作都是基于这个坐标系进行的。

在这里插入图片描述

2. 局部坐标系(Local Coordinate System)

又称模型坐标系(Model Coordinate System),是每个物体 / 模型自身固有的坐标系,其原点和轴向由建模时的定义决定。

原点:通常位于模型的几何中心、顶点或其他自定义位置(如机械零件的装配基准点)。

轴向:建模软件中默认的轴向(如 Blender 的 Z 轴向上,3ds Max 的 Y 轴向上),需根据引擎要求调整(如 OSG 默认使用右手坐标系,X 轴向右,Y 轴向上,Z 轴向屏幕外)。

在这里插入图片描述

3. 世界坐标系(World Coordinate System)

又称全局坐标系(Global Coordinate System),是场景中唯一的统一坐标系,用于确定所有物体的全局位置和方向。

原点:通常定义为场景的中心(如虚拟城市的原点设在广场中心),或根据需求自定义(如游戏场景的原点设在玩家出生点)。

轴向:遵循右手坐标系规则(如 OSG 中 X 轴向右,Y 轴向上,Z 轴向屏幕外),与局部坐标系保持一致以避免变换混乱。

基础变换实战

变换节点(osg::Transform)

变换节点是 OSG 中用于对模型进行平移、旋转和缩放等操作的重要节点类型。

最常用的变换节点是 osg::MatrixTransformosg::PositionAttitudeTransform:

osg::PositionAttitudeTransform // 通过位置/姿态直接控制
osg::MatrixTransform           // 通过矩阵直接控制
平移变换

平移是指在坐标系中沿着某个方向移动模型。

以下是一个简单的示例代码:

// PositionAttitudeTransform方式
// 创建可变换节点
osg::ref_ptr<osg::PositionAttitudeTransform> pat = new osg::PositionAttitudeTransform();
pat->setPosition(osg::Vec3(5.0f, 0.0f, 0.0f)); // X方向平移5个单位
`
// MatrixTransform方式
osg::ref_ptr<osg::MatrixTransform> transMT = new osg::MatrixTransform();
transMT->setMatrix(osg::Matrix::translate(5.0, 0.0, 0.0)); // 直接设置变换矩阵
旋转变换

旋转是指围绕某个轴旋转模型。

以下是一个简单的示例代码:

// PositionAttitudeTransform方式
// 创建可变换节点
osg::ref_ptr<osg::PositionAttitudeTransform> rotatePAT = new osg::PositionAttitudeTransform();
rotatePAT->setAttitude(osg::Quat(osg::DegreesToRadians(45.0), osg::Vec3d(0,0,1)));// MatrixTransform方式
sg::ref_ptr<osg::MatrixTransform> rotateMT = new osg::MatrixTransform();
rotateMT->setMatrix(osg::Matrix::rotate(osg::DegreesToRadians(45.0), osg::Vec3d(0,0,1))
);
缩放变换

缩放是指改变模型的大小。

以下是一个简单的示例代码:

// PositionAttitudeTransform方式
osg::ref_ptr<osg::PositionAttitudeTransform> scalePAT = new osg::PositionAttitudeTransform();
scalePAT->setPosition(osg::Vec3d(0.0, 0.0, 2.0));
scalePAT->setScale(osg::Vec3d(1.0, 2.0, 
http://www.dtcms.com/wzjs/434609.html

相关文章:

  • dedecms 网站地图生成it教育培训机构
  • 怎样制作微信小程序google seo优化
  • 哪个网站可以做平面兼职求几个微信推广平台
  • 专业找图片的网站网站查询网
  • 网站服务公司官网百度推广登陆平台登录
  • 网站开发平台软件百度帐号
  • 云主机 怎么做网站seo在线优化排名
  • 江苏宜兴做网站的电话企业网站免费制作
  • 乌苏市电力建设工程公司网站子域名网址查询
  • 成都电子网站建设多少钱建站服务
  • 台州市椒江建设工程机械厂网站百度网盘app怎么打开链接
  • 做网站申请多少类商标百度云手机app下载
  • front-page wordpress宁波seo如何做推广平台
  • h5建设网站公司做网站需要什么技术
  • wordpress网站首页链接乱码排名优化价格
  • 企业外部网站建设关键词排名优化流程
  • 新网站一天做多少外链建网络平台要多少费用
  • 小白的博客 wordpress山西seo推广
  • 做网站关键词最新营销模式
  • 网页开发软件有哪些排名优化网站建设
  • 政府与机构类网站baud百度一下
  • 福州搜索优化公司搜索引擎优化代理
  • 株洲关键词优化seo搜索优化怎么做
  • 成都做小程序的公司关键词优化平台有哪些
  • 外贸网站制作公司短链接在线生成官网
  • 有做网站吗百度指数资讯指数是指什么
  • 网站建设中 油财宝南昌百度seo
  • 影视网站建设电商最好卖的十大产品
  • 安徽建设银行招聘网站做一个app平台需要多少钱
  • 做任务得得q币的网站近两年网络营销成功案例