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

games101 作业0 环境搭建与熟悉线性代数库

作业目标

  • 在win中用WSL搭建可以运行games101作业的ubuntu环境。
  • 了解CMake和基本的C++知识
  • 学习探索C++线性代数库Eigen

作业说明

本文并未直接使用games101提供的虚拟机环境(环境太老旧用起来不方便),而是在网上学习了在win中用子系统的方式运行Linux。

作业内容

搭建环境

参考博客:在Windows下使用WSL和VSCode使用Games101环境

CMake知识点(了解)

makefie

参考本人文章:C++自学笔记 makefile

CMake

参考视频:南科大于老师

C++基本语法

参考课程:南科大C++

Eigen库

向量的使用:

在这里插入图片描述
注意:向量的点乘不能直接使用*,要使用函数dot()或转成矩阵相乘。

矩阵的使用:

在这里插入图片描述

Eigen::Matrix3f i,j;

上述矩阵定义方式定义的是浮点数方阵(行数为3)
要定义行列数任意的矩阵方法如下所示:

Eigen::Matrix<float, 3, 4> matA;  // 固定为 3行4列

作业代码

#include<cmath>
#include<eigen3/Eigen/Core>
#include<eigen3/Eigen/Dense>
#include<iostream>int main(){// point (2, 1)Eigen::Vector3f Pv(2.0f,1.0f,1.0f);std::cout << "Show the Point\n";std::cout << Pv << std::endl;// angle45float ang45 = 45.0 / 180.0 * acos(-1);// rotation matrixEigen::Matrix3f Rmat45;Rmat45 << std::cos(ang45), -1.0 * std::sin(ang45), 0.0f,std::sin(ang45), -1.0 * std::cos(ang45), 0.0, 0.0f           , 0.0f                  , 1.0f;std::cout << "rotation matrix\n";std::cout << Rmat45 << std::endl;// translation matrixEigen::Matrix3f Tmat1_2;Tmat1_2 << 1.0f, 0.0f, 1.0f,0.0f, 1.0f, 2.0f,0.0f, 0.0f, 1.0f;std::cout << "translation matrix\n";std::cout << Tmat1_2 << std::endl;// rotationPv = Rmat45 * Pv;std::cout << Pv << std::endl;std::cout << std::endl;Pv = Tmat1_2 * Pv;std::cout << "Result:" << std::endl;std::cout << Pv << std::endl;return 0;
}
http://www.dtcms.com/a/347633.html

相关文章:

  • H264编解码过程简述
  • 数据结构 -- 哈希表
  • RAGFlow (一) 开发环境搭建
  • imx6ull-驱动开发篇37——Linux MISC 驱动实验
  • [机械结构设计-18]:Solidworks - 特征(Feature)是构成三维模型的基本单元,是设计意图的载体,也是参数化设计的核心。
  • 深入剖析分布式事务的Java实现:从理论到Seata实战
  • c语言中enum与#define的用法区别
  • 算法题(189):食物链
  • 如何利用数据库事务,来防止数据不一致的问题
  • 云原生概述
  • [e3nn] 归一化 | BatchNorm normalize2mom
  • 自然语言处理——06 迁移学习(上)
  • MATLAB实现CNN-LSTM-Attention 时序和空间特征结合-融合注意力机制混合神经网络模型的风速预测
  • 云计算-K8s 运维:Python SDK 操作 Job/Deployment/Pod+RBAC 权限配置及自定义 Pod 调度器实战
  • Kubernetes相关问题集(四)
  • 「数据获取」《贵港统计年鉴》(2008-2023)(2016、2017缺失)(获取方式看绑定的资源)
  • 开发指南134-路由传递参数
  • 【KO】前端面试七
  • 科研笔记:博士生手册
  • n8n热门的开源 AI 工作流平台实操
  • git实战(7)git常用命令速查表
  • C++实现常见的排序算法
  • STM32窗口看门狗(WWDG)深度解析:精准守护嵌入式系统的实时性
  • day39-keepalived
  • How to Use Managed Identity with ACS?
  • 全面解析主流AI模型:功能对比与应用推荐
  • douyin_search_tool:用python开发的抖音关键词搜索采集软件
  • 低功耗全双工远距离无线对讲解决方案
  • 【数位DP】D. From 1 to Infinity
  • 数据库字段类型深度解析:从关系型到 NoSQL 的全面指南