【问题标题】:detect mouse clicks in OpenGL in C在 C 中检测 OpenGL 中的鼠标点击
【发布时间】:2015-10-24 16:18:44
【问题描述】:

有什么方法可以通过不使用 glutMouseFunc() 来检测鼠标点击位置?

我在网上找到的所有使用 glutMouseFunc() 获得鼠标点击的示例。但是,我不希望检测鼠标单击功能始终处于活动状态。我只想在用户在菜单中选择某个选项后记录鼠标单击位置。确切地说,我想在用户在菜单中选择一个选项后记录 4 个鼠标单击位置。

【问题讨论】:

  • 将你想要的条件写入glutMouseFunc。仅供参考,glutMouseFunc 没有真正的计算成本。

标签: c opengl glut freeglut


【解决方案1】:

首先,OpenGL 与鼠标回调无关。它是图形库。为了您的最终目标,基本上正如@Mikhail 所建议的那样,您在glutMouseFunc 中插入一个条件语句,因此,

void mouse_callback(){

if ( command_seleteced == true )
   store mouse position

}

【讨论】:

    【解决方案2】:

    我阅读了有关 glutMouseFunc() here 的文档。如果你想在不同的时间用 4 个不同的函数处理鼠标事件,你可以用NULL 调用glutMouseFunc,然后用另一个函数调用glutMouseFunc。来自文档:

    将 NULL 传递给 glutMouseFunc 会禁用鼠标回调的生成。

    如果您想同时处理不同的鼠标事件,那么您必须编写一个具有所有这些条件的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-17
      • 2020-04-18
      • 2013-12-08
      • 2021-03-28
      • 2021-09-06
      • 2015-08-03
      相关资源
      最近更新 更多