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

opengl中的旋转、平移、缩放矩阵生成函数

构建并返回平移矩阵 

mat4 buildTranslate(float x, float y, float z)
{ mat4 trans = mat4(1.0, 0.0, 0.0, 0.0, 
                    0.0, 1.0, 0.0, 0.0, 
                    0.0, 0.0, 1.0, 0.0, 
                    x, y, z, 1.0 ); 
  return trans;
} 

构建并返回绕x轴的旋转矩阵 


mat4 buildRotateX(float rad)
{ mat4 xrot = mat4(1.0, 0.0, 0.0, 0.0, 
                   0.0, cos(rad), -sin(rad), 0.0, 
                   0.0, sin(rad), cos(rad), 0.0, 
                   0.0, 0.0, 0.0, 1.0 ); 
  return xrot;
}

构建并返回绕y轴的旋转矩阵 

mat4 buildRotateY(float rad)
{ mat4 yrot = mat4(cos(rad), 0.0, sin(rad), 0.0, 
                   0.0, 1.0, 0.0, 0.0, 
                   -sin(rad), 0.0, cos(rad), 0.0, 
                   0.0, 0.0, 0.0, 1.0 ); 
  return yrot;
}

构建并返回绕z轴的旋转矩阵 

mat4 buildRotateZ(float rad)
{ mat4 zrot = mat4(cos(rad), -sin(rad), 0.0, 0.0, 
                   sin(rad), cos(rad), 0.0, 0.0, 
                   0.0, 0.0, 1.0, 0.0, 
                   0.0, 0.0, 0.0, 1.0 ); 
  return zrot;
}

 

构建并返回缩放矩阵 

mat4 buildScale(float x, float y, float z)
{ mat4 scale = mat4(x, 0.0, 0.0, 0.0, 
                    0.0, y, 0.0, 0.0, 
                    0.0, 0.0, z, 0.0, 
                    0.0, 0.0, 0.0, 1.0 ); 
  return scale;
}

小结

http://www.dtcms.com/a/82685.html

相关文章:

  • 力扣53.最大子数组和
  • CUL-CHMLFRP启动器 windows图形化客户端
  • 《深入剖析鸿蒙生态原生应用:一次开发多端部署的技术革新》
  • 23种设计模式-工厂方法(Factory Method)设计模式
  • ccfcsp2701如此编码
  • 统一开放世界与开放词汇检测:YOLO-UniOW无需增量学习的高效通用开放世界目标检测框架
  • 【机密计算顶会解读】11:ACAI——使用 Arm 机密计算架构保护加速器执行
  • FPGA中串行执行方式之计数器控制
  • snmp/mib采用子代理模式,编码,部署
  • 手抖的预防策略
  • 【USTC 计算机网络】第二章:应用层 - TCP UDP 套接字编程
  • [unity 组件] Content Size Fitter 横向填充不满解决办法
  • Json的应用实例——cad 二次开发c#
  • 从零开始学可靠消息投递:分布式事务的“最终一致性”方案
  • 独立组网和非独立组网
  • 文章防洗稿隐蔽混淆软件
  • 102.在Vue3中使用OpenLayers实现定位动画(平移-弹性平移-飞行)
  • 梦回杭州...
  • 【一起学Rust | Tauri2.0框架】基于 Rust 与 Tauri 2.0 框架实现全局状态管理
  • 打造更高效的移动远控方案,贝锐向日葵Android主控SDK更新
  • Mac - Cursor 配置 + GPT 4.0/4.5/o1/o3/Deepseek Api 使用
  • 数据结构——第六章:图
  • 力扣算法Hot100——128. 最长连续序列
  • C# WPF编程-TabControl
  • 【Linux网络】手动部署并测试内网穿透
  • AWS AI中几个重要的工具介绍
  • CA 机构如何防止中间人攻击
  • leecode463.岛屿的周长
  • Java利用POI+JFreeChart 实现excel导出数据和图标(折线统计图)
  • Kafka Snappy 压缩异常分析与解决方案