pyopengl显示选中点的坐标
时间: 2023-05-25 14:04:45 浏览: 156
以下是使用Python和PyOpenGL显示选中点坐标的示例代码:
```
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
width, height = 500, 500 # 窗口大小
# 存储选中点的坐标
point_x, point_y = 0, 0
def init():
glClearColor(0.0, 0.0, 0.0, 1.0) # 设置背景颜色为黑色
glMatrixMode(GL_PROJECTION)
gluOrtho2D(0, width, 0, height) # 设置投影模式为2D正交投影
def display():
glClear(GL_COLOR_BUFFER_BIT) # 清空屏幕
glColor3f(1.0, 1.0, 1.0) # 设置画笔颜色为白色
glBegin(GL_POINTS) # 开始绘制点
# 绘制一个坐标为(100, 100)的点
glVertex2f(100, 100)
glEnd() # 结束绘制点
glutSwapBuffers() # 切换缓冲区,显示图形
def mouse(button, state, x, y):
global point_x, point_y
if button == GLUT_LEFT_BUTTON and state == GLUT_DOWN:
point_x, point_y = x, height - y # 保存选中点的坐标
print("Selected point: ({}, {})".format(point_x, point_y))
def main():
glutInit()
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB) # 设置双缓冲和RGB颜色模式
glutInitWindowSize(width, height) # 设置窗口大小
glutCreateWindow("OpenGL") # 创建窗口
glutDisplayFunc(display) # 设置显示回调函数
glutMouseFunc(mouse) # 设置鼠标事件回调函数
init() # 初始化OpenGL
glutMainLoop() # 进入主循环
if __name__ == '__main__':
main()
```
在上面的示例中,我们绘制了一个坐标为(100, 100)的点,并在鼠标单击时通过`mouse`函数获取选中点的坐标,并在控制台上输出。你可以将`mouse`函数的内容更改为你想要的操作,例如在窗口中显示选中点的坐标。
阅读全文