Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.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
C++ OpenGL的新成员,致力于;油漆;程序_C++_Opengl_Graphics_Paint - Fatal编程技术网

C++ OpenGL的新成员,致力于;油漆;程序

C++ OpenGL的新成员,致力于;油漆;程序,c++,opengl,graphics,paint,C++,Opengl,Graphics,Paint,这学期我在大学里修了一门计算机图形学课程,我们的第一个任务是建立一个程序,它的工作原理很像微软的绘画。我们需要为不同颜色、大小和透明度参数的图形设置选项 我很难找到有关如何编程在鼠标拖动下绘制给定形状的能力的信息。我不是在问代码中的解决方案,而是关于在哪里研究可能实现这一点的函数的指导 我对OpenGL(但不是C++)完全陌生&我拥有赫恩和贝克的《OpenGL计算机图形学》第四版。没有一个主题建议此功能。您可能会要求创建一个缓冲窗口,或者切换到在前缓冲区上绘制,并在按下(并拖动)按钮时在鼠标指针

这学期我在大学里修了一门计算机图形学课程,我们的第一个任务是建立一个程序,它的工作原理很像微软的绘画。我们需要为不同颜色、大小和透明度参数的图形设置选项

我很难找到有关如何编程在鼠标拖动下绘制给定形状的能力的信息。我不是在问代码中的解决方案,而是关于在哪里研究可能实现这一点的函数的指导


我对OpenGL(但不是C++)完全陌生&我拥有赫恩和贝克的《OpenGL计算机图形学》第四版。没有一个主题建议此功能。

您可能会要求创建一个缓冲窗口,或者切换到在前缓冲区上绘制,并在按下(并拖动)按钮时在鼠标指针位置绘制一些形状,而不清除中间的前缓冲区。为了增加鲁棒性,请绘制到帧缓冲区对象附着的纹理,以便拖动某些窗口不会破坏用户的图形


关键词:将视口设置为窗口大小。正交投影到窗口边界时,不要使用glClear(重置图片除外)。

如“使用鼠标在特定位置放置不同形状”中所示进行绘图?或如“使用不同形状作为笔刷,可能创建轨迹”?使用不同形状作为留下轨迹的笔刷。您可以使用跨平台库(例如
GLUT
)在窗口上接收鼠标事件,然后在特定位置按下鼠标按钮时,以固定间隔添加新形状。这不是最有效的解决方案,但却是我脑海中第一个想到的解决方案。除非屏幕上有大量的形状,否则就不会那么难看。使用OpenGL绘制二维图形?我知道这是可能的,也可能是一个好主意,但除了学习OpenGL,难道没有更简单的解决方案吗?OpenGL可能非常复杂,大多数东西对你在这里做的事情都没有帮助。我无法对@TheMateurProgrammer的评论进行足够的支持。