pyopengl屏幕坐标转世界坐标代码
时间: 2023-09-27 14:09:07 浏览: 95
Qt+OpenGL 屏幕坐标转世界坐标
5星 · 资源好评率100%
以下是一个简单的示例代码,将屏幕坐标转换为世界坐标:
```
import numpy as np
from OpenGL.GL import *
# 设置视口大小
glViewport(0, 0, width, height)
# 设置投影矩阵
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(45, width / height, 0.1, 100.0)
# 设置模型视图矩阵
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
# 获取鼠标屏幕坐标
mouse_x, mouse_y = pygame.mouse.get_pos()
# 获取屏幕深度值
depth = glReadPixels(mouse_x, height - mouse_y - 1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT)
# 获取世界坐标
modelview = np.array(glGetDoublev(GL_MODELVIEW_MATRIX))
projection = np.array(glGetDoublev(GL_PROJECTION_MATRIX))
viewport = np.array(glGetIntegerv(GL_VIEWPORT))
x, y, z = gluUnProject(mouse_x, height - mouse_y - 1, depth, modelview, projection, viewport)
# 在世界坐标系中绘制一个点
glPointSize(5)
glBegin(GL_POINTS)
glVertex3f(x, y, z)
glEnd()
```
阅读全文