Pangolin库:视窗、相机、视图的构建及基础图形的绘制 |
您所在的位置:网站首页 › 基本图形绘制的库 › Pangolin库:视窗、相机、视图的构建及基础图形的绘制 |
Pangolin是基于OpenGL开发的绘图库,提供了基础的绘图功能和许多GUI操作。 工程构建 工程结构此处,采用Ubuntu20.04+CLion进行开发。新建工程Study,结构如下所示: . ├── CMakeLists.txt ├── include │ └── main.h └── src ├── CMakeLists.txt └── main.cpp CMake配置其中,根目录下CMakeLists.txt文件内容如下: # cmake version cmake_minimum_required(VERSION 3.21) # project name project(Study) # cpp version set(CMAKE_CXX_STANDARD 14) # eigen include_directories("/usr/include/eigen3") # Sophus find_package(Sophus REQUIRED) include_directories(${Sophus_INCLUDE_DIRS}) # pangolin find_package(Pangolin REQUIRED) include_directories(${Pangolin_INCLUDE_DIRS}) # incldue include_directories(include) # src add_subdirectory(src)主要导入Eigen库、Sophas库、Pangolin库,src目录下CMakeLists.txt文件内容如下: # exec add_executable(Study main.cpp) # link target_link_libraries(Study ${Pangolin_LIBRARIES})主要用于生成可执行二进制文件并链接Pangolin的动态库文件。 头文件include目录用于存放头文件main.h: #ifndef STUDY_MAIN_H #define STUDY_MAIN_H #include #include #include // Eigen #include #include #include // Sophus #include #include // Pangolin #include // namespace using namespace std; using namespace Eigen; #endif //STUDY_MAIN_H 源码src目录用于存放源文件main.cpp: #include #include "main.h" int main() { cout // 清空颜色、深度信息缓存,刷新显示信息 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); // 激活相机、交互试图 d_cam.Activate(s_cam); /*-------- 绘图 --------*/ // 帧循环,推进信息更迭 pangolin::FinishFrame(); } return 0; }效果如下: 此时,点击关闭视窗,程序将自动停止。 绘制基本图形完成在激活相机后,即可进行进一步的绘制对象。 背景色设置使用如下语句设置背景颜色,默认为黑色: glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); red、green、blue:颜色RGB数值,范围0~1alpha:透明度例如,设置红色背景: 使用如下语句,在原点构建一个立方体对象: pangolin::glDrawColouredCube();效果如下: 使用如下方式,绘制点: /*-------- 绘图 --------*/ // 设置点大小 glPointSize(30.0); // 开始画点 glBegin ( GL_POINTS ); // 设置点颜色,rgb值,float类型 glColor3f(0, 1, 0); // 设置点1坐标,3维float类型 glVertex3f(0, 0, 0); // 设置点2颜色、坐标 glColor3f(1, 0, 0); glVertex3f(0, 1, 0); // 结束画点 glEnd();效果如下: 使用如下语句,实现绘制线段: /*-------- 绘图 --------*/ // 设置大小 glLineWidth(4); // 开始 glBegin ( GL_LINES ); // 设置颜色 glColor3f(0, 1, 0); // 设置起点、终点坐标 glVertex3f(0, 0, 0); glVertex3f(0, 1, 0); // 结束 glEnd();效果如下: 使用如下语句,实现绘制折线: /*-------- 绘图 --------*/ // 设置大小 glLineWidth(2); // 开始 glBegin ( GL_LINE_STRIP ); // 设置颜色 glColor3f(0, 1, 0); // 设置折点坐标 glVertex3f(0, 0, 0); glVertex3f(0, 1, 0); glVertex3f(1, 1, 0); // 结束 glEnd();效果如下: 使用如下语句,实现绘制封闭不规则图像: /*-------- 绘图 --------*/ // 设置大小 glLineWidth(2); // 开始 glBegin ( GL_LINE_LOOP ); // 设置颜色 glColor3f(0, 1, 0); // 设置折点坐标 glVertex3f(0, 0, 0); glVertex3f(0, 1, 0); glVertex3f(1, 1, 0); // 结束 glEnd();效果如下: 对图像进行保持,采用如下语句进行: pangolin::SaveWindowOnRender(const std::string& filename_hint);图像将以filename_hint为名称进行保存在运行目录下,文件后缀名为.png。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |