1.用Python和OpenGL探索数据可视化(实践篇)- 三维点云数据可视化
2.用Python和OpenGL探索数据可视化(基础篇)- 完善pygl增加OpenGL二维纹理对象
3.用Python和OpenGL探索数据可视化(基础篇)- OpenGL简介及演化
4.用Python和OpenGL探索数据可视化(三维篇)- 与照相机“共舞”
5.用Python和OpenGL探索数据可视化(基础篇)- 细说纹理环绕
6.用Python和OpenGL探索数据可视化(实践篇)- Mesh网格模型查看器(中)
用Python和OpenGL探索数据可视化(实践篇)- 三维点云数据可视化
在本篇实践中,可视我们将使用Python和OpenGL 4.5技术来可视化三维点云数据,化源通过前面章节的数视化基础铺垫,如OpenGL绘图基础和开发环境配置,可视现在我们将开始具体应用。化源点云,数视化jeesite4.0 源码作为三维空间中点的可视集合,广泛应用于建筑、化源医疗、数视化自动驾驶等领域,可视其可视化对于数据分析至关重要。化源我们将从数据获取(如来自semantic3d.net的数视化亿点样本)入手,处理XYZ坐标和RGB颜色信息,可视通过编写VS Code中的化源点云渲染代码,实现点云数量的数视化动态调整和交互式操作,如缩放、旋转和移动。源代码及系列文章参考链接已提供,有兴趣的读者可以跟随步骤进行实践。
用Python和OpenGL探索数据可视化(基础篇)- 完善pygl增加OpenGL二维纹理对象
在 Python 和 OpenGL 4.5 的数据可视化开发系列文章中,本文将介绍如何利用 Python 和 OpenGL 进行数据可视化。首先,确保你的电脑支持 OpenGL 4.5 版本,大约从年开始销售的电脑通常支持。接下来,配置你的开发环境,包括 VS Code、Python 以及 OpenGL 开发工具。
在上一篇文章中,我们已经学习了如何创建 OpenGL 的纹理对象,并使用文件生成纹理贴图。然而,OpenGL 中的纹理类型多样,其中二维纹理是最常见的。因此,本篇文章将基于上一篇文章的易语言源码密码忘了知识,重构一个专门读取文件的二维纹理类,并将其集成到 pygl 工具包中。
在 VS Code 中,打开文件夹 D:\pydev\pygl,新建一个名为 imagetexture2d.py 的文件。在该文件中,定义了一个名为 ImageTexture2D 的类,该类用于读取文件并创建 OpenGL 二维纹理对象。
首先,定义了一个构造函数 __init__,用于初始化需要读取的文件路径。接着,对读取文件和坐标系进行了调整,以确保数据正确地映射到 OpenGL 纹理中。之后,检查读取的纹理对象是否有效,并调用相应的 OpenGL 函数进行纹理对象的创建和绑定。
在完成纹理类的定义后,需要在 __init__.py 文件中添加导入语句,以便其他模块可以访问 ImageTexture2D 类。在 texture_app.py 文件中,更新代码以引用新的 ImageTexture2D 类,并进行必要的配置调整。通过运行代码,验证功能是否正常。
最后,本系列文章的源代码可以在 gitee.com/eagletang/pygl... 获取。同时,参考系列文章以获取更多有关 Python 和 OpenGL 数据可视化开发的知识。
本文主要关注如何使用 Python 和 OpenGL 进行数据可视化,包括配置开发环境、使用纹理对象、重构代码以实现更高效的数据处理。通过实践和理解这些概念,你将能够使用 Python 和 OpenGL 开发出丰富且高效的pix飞控源码git数据可视化应用。
用Python和OpenGL探索数据可视化(基础篇)- OpenGL简介及演化
今天是年三十,祝愿大家在甲辰龙年身体健康、万事如意! OpenGL,全称Open Graphics Library,是一个图形API,为程序员提供了一系列近个函数和程序,用于构建高质量的3D图像,特别是针对三维对象的彩色渲染。它作为行业标准,因其跨平台特性,广泛应用于从手机到超级计算机的各种设备,涉及CAD、CAE、科学可视化等多个领域。 自年起,Khronos Group负责OpenGL规范的制定,到年,已发布个版本。想深入了解OpenGL的发展历程,可访问 khronos.org 关于OpenGL的官方时间线。 从年OpenGL 1.0发布以来,历经年,其渲染管线和核心对象在4.3版本后趋于稳定。然而,随着硬件的飞速发展,Khronos Group在年推出了新一代API Vulkan,它更接近硬件,提供更高效的渲染性能。 对于学习者来说,掌握OpenGL的基本概念,如渲染管线和GLSL着色器,将有助于后续学习Vulkan。相关资源可以参考:registry.khronos.org/OpenGL
khronos.org/opengl/
khronos.org/opengl/wiki/
系列教程源代码已上传至 Gitee: gitee.com/eagletang/pyg... 系列文章包括但不限于:《用Python和OpenGL探索数据可视化(基础篇)- 你好,窗口!文本语义分析算法源码》
《用Python和OpenGL探索数据可视化(基础篇)- 你好,OpenGL!》
...(后续文章链接)
用Python和OpenGL探索数据可视化(三维篇)- 与照相机“共舞”
本文深入探索使用Python和OpenGL进行三维数据可视化。首先,确保您的设备支持OpenGL 4.5版本,推荐于年之后生产的电脑。其次,配置开发环境,包括VS Code、Python和OpenGL。利用Python和OpenGL,我们能将三维世界的图形映射至二维屏幕,理解空间变换的重要性。
通过绘制三维坐标轴和立方体,我们已经学习了OpenGL如何通过一系列数学变换将三维世界映射至屏幕。本节将重点介绍视图矩阵和投影矩阵,它们是开发人员进行空间变换的关键。您可以通过代码实践更好地理解这些概念。
为了实践,打开VS Code,选择“Open Folder”,在D:\pydev\pygl的basic文件夹下新建文件camera_app.py。输入代码,运行VS Code,您将看到交互式界面,包含三个滑动条用于控制照相机的位置、目标及视野、近面和远面。通过调整滑动条,可以实时改变照相机的视角,观察三维模型。点击“使用顶点颜色”切换立方体的显示模式,或点击“重置”恢复初始设置。
本文系列提供丰富的资源和代码示例,帮助您深入学习使用Python和OpenGL进行数据可视化。源码编译安装卸载从基础篇到三维篇,每篇文章都详细介绍了OpenGL的使用技巧,旨在让开发者掌握三维数据可视化的核心知识。
欲获取源代码及更多资源,请访问:gitee.com/eagletang/pyg...
用Python和OpenGL探索数据可视化(基础篇)- 细说纹理环绕
本系列文章将指导如何使用Python与OpenGL 4.5进行数据可视化开发。首先,请参考《准备工作(一)Windows下检测显卡和OpenGL信息》以确认您的电脑支持OpenGL 4.5版本。接着,《准备工作(二)配置Windows下VS Code + Python + OpenGL开发环境》将帮助您设置开发环境。
在《用Python和OpenGL探索数据可视化(基础篇)- 你好,纹理!》一文后,您已学习如何在物体的“面”上贴上复杂色彩,通过《用Python和OpenGL探索数据可视化(基础篇)- 完善pygl增加OpenGL二维纹理对象》形成了单独的OpenGL二维纹理类ImageTexture2D。本节我们探讨如何利用ImageTexture2D详细解释纹理环绕的概念。
在“画图”工具中打开D:\pydev\pygl\textures\cratetex.png,并将其另存为cratetex_text.png。在原有基础上添加“GL”文字。在VS Code中创建texture_wrap_app.py文件,输入特定代码并运行。
改变垂直环绕方式为GL_CLAMP_TO_EDGE,分别调整水平环绕方式,您将看到不同的输出效果。接着,将垂直环绕更改为GL_REPEAT,再次调整水平环绕,观察结果变化。类似地,当垂直环绕为GL_MIRRORED_REPEAT时,改变水平环绕会得到新的输出。最后,保持垂直环绕为GL_CLAMP_TO_BORDER,改变水平环绕,您将看到更多样化的输出。
通过对比这些截图,结合ImageTexture2D类的setWrapMode方法的使用,您可以更深入地理解纹理环绕的机制。例如,当纹理坐标不在0到1之间时,OpenGL会重复绘制纹理。
在代码第-行,定义了矩形的顶点属性,需要注意纹理坐标的范围。在《用Python和OpenGL探索数据可视化(基础篇)- 你好,纹理!》一文中提到,纹理坐标的范围是0到1,但这里的坐标范围超出这一范围,导致重复绘制纹理。结合setWrapMode方法,当使用GL_REPEAT、GL_MIRRORED_REPEAT、GL_CLAMP_TO_EDGE或GL_CLAMP_TO_BORDER时,OpenGL会根据不同的设置重复、镜像重复或使用边缘或指定边界颜色绘制纹理。
代码第、行定义了类属性wrap_s_mode和wrap_t_mode,用于保存纹理环绕的具体设置值。第行设置了边界颜色为蓝色,第、行定义了ImGui窗口的宽度和高度。第行设置纹理过滤参数。第-行使用ImGui的单选按钮为wrap_s_mode和wrap_t_mode设置不同的环绕数值。第行调用setWrapMode方法更新纹理环绕参数,影响绘制结果。最后,第-行展示了设置纹理对象tex的边界颜色的效果。
本文系列源代码已上传至gitee.com/eagletang/pygl...(链接省略)。相关文章包括但不限于《用Python和OpenGL探索数据可视化(基础篇)- 你好,窗口!》、《用Python和OpenGL探索数据可视化(基础篇)- 重构代码“你好,小不点!”》等,为您的学习提供全面指导。
用Python和OpenGL探索数据可视化(实践篇)- Mesh网格模型查看器(中)
在本系列文章中,我们探讨了如何使用Python和OpenGL 4.5进行数据可视化开发。首先,请确保您的电脑支持OpenGL 4.5版本(大多数年之后销售的电脑均支持)。接下来,请配置您的开发环境,包括Windows下的VS Code、Python和OpenGL。
上一节中,我们学习了如何以三维点云的方式查看不同的Mesh网格模型。本节,我们将继续深入,利用之前所学的知识,以实体线框方式展示数据。在common子文件夹中,创建一个名为solid_wireframe.py的文件,用于以实体线框方式显示数据。
在solid_wireframe.py中,输入以下代码:
在common子文件夹下的__init__.py文件中进行相应的修改。
在mesh_viewer.py文件的基础上,继续完善usecase子文件夹下的代码。默认情况下,打开文件后以实体线框方式查看Mesh网格模型。点击VS Code右上角的三角形图标,运行代码,选择文件菜单下的打开命令,打开bun_zipper.ply文件。默认为实体线框显示,通过鼠标操作调整模型视角,修改曲面和线框颜色等。点击“查看方式”菜单,可以选择以点云方式显示。再次开dragon_vrip.ply文件,选择实体线框方式,可调整缩放比例。再次选择Utah_VW_Bug.stl文件,调整缩放比例和线框粗细。最后,打开teapot.obj文件,实体线框模式提供了更多模型细节。
下一节,我们将尝试添加光照功能,以实现更丰富的可视化效果。
本系列文章的源代码已上传至gitee.com/eagletang/pyg...。
在探索数据可视化的旅程中,请参考以下系列文章:
1. 用Python和OpenGL探索数据可视化(基础篇)- OpenGL简介及演化
2. 计算机图形显示的基础知识
3. OpenGL 渲染管线简介
4. OpenGL 4.5核心对象简介
在基础篇中,我们从“你好,窗口!”开始,逐渐深入到“你好,三角形!”、“处理键盘和鼠标事件”等主题,构建了Python和OpenGL的可视化基础。
在三维篇中,我们探讨了如何创建坐标轴、使用立方体体验模型矩阵、创建三维坐标轴类和立方体类、与照相机“共舞”、创建照相机类、使用帧缓存对象FBO、CT扫描体数据可视化等高级主题。
实践篇中,我们尝试了三维点云数据可视化、数学之美之三维曲面、使用几何着色器绘制实体线框、使用细分着色器、绘制二维贝塞尔曲线(含动画)等实际应用。
在本节中,我们专注于以实体线框方式查看Mesh网格模型,通过实践加深对OpenGL和数据可视化技术的理解。
用Python和OpenGL探索数据可视化(三维篇)- 创建三维坐标轴类和立方体类
本系列文章讲解使用Python与OpenGL 4.5进行数据可视化开发,确保您的计算机支持OpenGL 4.5版本,建议阅读《准备工作(一)Windows下检测显卡和OpenGL信息》以确认兼容性。继续参阅《准备工作(二)配置Windows下VS Code + Python + OpenGL开发环境》以完成所需开发环境的设置。
上一节我们通过立方体学习了OpenGL的变换矩阵与模型矩阵。紧接着在《用Python和OpenGL探索数据可视化(三维篇)- 你好,坐标轴》一节中我们绘制了三维坐标轴。立方体与坐标轴是三维图形绘制中常见的元素,因此我们将在本节中通过代码重构将它们转化为专门类,以便后续的重复使用。
开始VS Code,使用File菜单下的“Open Folder”功能,打开D:\pydev\pygl并进入common文件夹,新建一个名为shaders的子文件夹。将basic文件夹下的shaders子文件夹中的axes.vs、axes.fs、cube.vs、cube.fs文件复制至common文件夹的shaders文件夹。
在common文件夹中新建axeshelper.py文件,并在其中输入相应代码。同样地,创建cube.py文件并输入对应代码。接着,在common文件夹中建立__init__.py文件,并在其中输入必要的代码。
在basic文件夹中新建一个名为cube_app_v1.py的文件,并在其中输入相应的代码。点击VS Code右上角的三角形图标以运行代码,此时会呈现预期的结果。
借助坐标轴的辅助,图形变换变得清晰且有趣。通过本系列文章中的源代码资源,您可以进一步探索和实践Python与OpenGL的数据可视化开发。
参考系列文章:1.《用Python和OpenGL探索数据可视化(基础篇)- 你好,窗口!》;2.《用Python和OpenGL探索数据可视化(基础篇)- 你好,OpenGL!》;3.《用Python和OpenGL探索数据可视化(基础篇)- 你好,ImGui!》;4.《用Python和OpenGL探索数据可视化(基础篇)- 你好,小不点!》;5.《用Python和OpenGL探索数据可视化(基础篇)- 重构代码“你好,小不点!”》;6.《用Python和OpenGL探索数据可视化(基础篇)- “你好,线段!”》;7.《用Python和OpenGL探索数据可视化(基础篇)- 重构代码组织OpenGL核心对象包pygl》;8.《用Python和OpenGL探索数据可视化(基础篇)- 你好,三角形!》;9.《用Python和OpenGL探索数据可视化(基础篇)- 改进OpenGL程序Program类》;.《用Python和OpenGL探索数据可视化(基础篇)- 你好,矩形!》;.《用Python和OpenGL探索数据可视化(基础篇)- 完善pygl增加索引缓存对象EBO》;.《用Python和OpenGL探索数据可视化(基础篇)- 你好,纹理!》;.《用Python和OpenGL探索数据可视化(基础篇)- 完善pygl增加OpenGL二维纹理对象》;.《用Python和OpenGL探索数据可视化(基础篇)- 细说纹理环绕》;.《用Python和OpenGL探索数据可视化(基础篇)- 细说纹理过滤》;.《用Python和OpenGL探索数据可视化(基础篇)- 处理键盘和鼠标事件》;.《用Python和OpenGL探索数据可视化(三维篇)- 你好,坐标轴》;.《用Python和OpenGL探索数据可视化(三维篇)- 用立方体体验模型矩阵》。