Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单击OpenGL绘制球体_Python_Opengl - Fatal编程技术网

Python 单击OpenGL绘制球体

Python 单击OpenGL绘制球体,python,opengl,Python,Opengl,我正在尝试创建一个简单的程序,当你点击它会在鼠标的位置画一个球体 该问题是另一个空白窗口,不显示任何内容。在下面的代码中,我至少确认它注册了鼠标点击,并且正在保存鼠标位置。我假设问题出在我的显示功能的某个地方,我只是不确定在哪里或者为什么 我所做的大部分工作都是以实例为基础的 首先,您的坐标不正确地映射到屏幕像素(鼠标坐标以屏幕像素为单位,从上/左开始)。另外,gluOrtho2D定义了深度从-1到1的剪裁区域。因为我们在这里使用像素,所以您的球体将显示为2像素宽的纵向切片(只是一个环)。使用带

我正在尝试创建一个简单的程序,当你点击它会在鼠标的位置画一个球体

该问题是另一个空白窗口,不显示任何内容。在下面的代码中,我至少确认它注册了鼠标点击,并且正在保存鼠标位置。我假设问题出在我的显示功能的某个地方,我只是不确定在哪里或者为什么

我所做的大部分工作都是以实例为基础的


首先,您的坐标不正确地映射到屏幕像素(鼠标坐标以屏幕像素为单位,从上/左开始)。另外,
gluOrtho2D
定义了深度从-1到1的剪裁区域。因为我们在这里使用像素,所以您的球体将显示为2像素宽的纵向切片(只是一个环)。使用带有以下参数的
glOrtho
而不是
glortho2d
将解决这两个问题:

    glOrtho(0.0, 550.0, 550.0, 0.0, -100.0, 100.0);
这将使从深度-100.0到100.0的所有内容都可见,这对于球体来说已经足够了

第二,你的“球体”太小以至于看不见。。。由于现在我们使用像素,请将其大小增加到一些像素:

    glutSolidSphere(15, 250, 250)

它们看起来仍然不像球体,因为它们缺少渐变的阴影来提供深度印象,但这是一个更加复杂的照明问题。

首先,您的坐标不正确地映射到屏幕像素(鼠标坐标以屏幕像素为单位,从上/左开始)。另外,
gluOrtho2D
定义了深度从-1到1的剪裁区域。因为我们在这里使用像素,所以您的球体将显示为2像素宽的纵向切片(只是一个环)。使用带有以下参数的
glOrtho
而不是
glortho2d
将解决这两个问题:

    glOrtho(0.0, 550.0, 550.0, 0.0, -100.0, 100.0);
这将使从深度-100.0到100.0的所有内容都可见,这对于球体来说已经足够了

第二,你的“球体”太小以至于看不见。。。由于现在我们使用像素,请将其大小增加到一些像素:

    glutSolidSphere(15, 250, 250)

它们看起来仍然不像球体,因为它们缺少能给人留下深度印象的渐变阴影,但这是一个照明问题,是一个更复杂的话题。

“问题”…到底是什么?是删除你的主目录吗?Bluescreening?Woops抱歉修复了“问题”…到底是什么?是删除你的主目录吗?Bluescreening?Woops抱歉修正了这一点,谢谢你的工作,至于虚线的东西,我完全没有线索,如果你真的找到了什么,请随时再次发布。完美!非常感谢你的感谢,关于虚线的事情,我完全没有任何线索,如果你真的发现了什么,请随时再次发布。太好了!非常感谢你