【问题标题】:Changing the mouse position in GLUT?更改 GLUT 中的鼠标位置?
【发布时间】:2012-05-29 19:44:51
【问题描述】:

我正在尝试用鼠标旋转相机。移动它不是问题,但我需要把它放在一个地方。我试过 glutWarpPointer() 但它显着减慢了程序的速度。我正在尝试为某些东西编写引擎,但不想使用和添加。

int diff = x - oldx;
oldx = x; rx += diff;
if (rx > 360) 
    rx = 0; 

if (rx < 0) 
    rx = 360; 

NSLog(@"%f",rx);
back = YES; 
glutWarpPointer(0, 0); 
glutPostRedisplay();

【问题讨论】:

  • int diff = x - oldx;老x = x; rx += 差异;如果 (rx > 360) rx = 0;如果 (rx

标签: objective-c macos mouse glut


【解决方案1】:

glutWarpPointer 在 OS X 上应该很快;您在程序中的哪个位置调用它?

它有时也会强制调用glutPassiveMotionFunc,所以要小心。

【讨论】:

  • 我在被动运动中调用它,但没有工作,然后我在绘图功能中尝试了它。它会帮助您使其成为自己的功能吗?
【解决方案2】:

它需要退出 GLUT,但您可以使用 CGAssociateMouseAndMouseCursorPosition(false); 使其不会移动光标(视觉光标或事件中报告的绝对位置等)。随后的鼠标事件具有不变的绝对位置,但包括适当的增量以提供移动。我不知道这些增量是否可以从 GLUT 访问。

【讨论】:

  • 我解决了我的问题,但忘了回答问题。我使用了 CGSetLocalEventsSuppressionInterval 并且效果很好。感谢您的帮助:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多