日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenGL鼠标交互

發布時間:2023/12/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenGL鼠标交互 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

官方文檔:
OpenGLUT Documentation
http://openglut.sourceforge.net/group__input.html

檢測鼠標單擊

void glutMouseFunc(void (*func)(int button,int state,int x,int y));
func:處理鼠標點擊事件的函數名
button:取值GLUT_LEFT_BUTTON GLUT_MIDDLE_BUTTON GLUT_RIGHT_BUTTON
state:取值GLUT_DOWN GLUT_UP
x,y:提供鼠標當前窗口坐標(以左上角為原點)

檢測鼠標動作

鼠標移動并且一個鼠標鍵被按下

void glutMotionFunc(void(*func)(int x,int y));

鼠標移動并沒有鼠標鍵按下

void glutPassiveMotionFunc(void (*func)(int x,int y));

檢測鼠標進入或離開窗口區域

void glutEntryFunc(void(*func)(int state));
state:取值GLUT_LEFT GLUT_ENTRED

檢測滾輪滾動

注意在老的glut庫中并不支持這個函數。支持滾輪的Free Glut
void glutMouseWheelFunc (void(*)(int wheel, int direction, int x, int y))
wheel是一個數,direction取+-1,x y是鼠標坐標

使用標準函數測試:

#include <GL/glut.h> <snip...> void mouse(int button, int state, int x, int y) {// Wheel reports as button 3(scroll up) and button 4(scroll down)if ((button == 3) || (button == 4)) // It's a wheel event{// Each wheel event reports like a button click, GLUT_DOWN then GLUT_UPif (state == GLUT_UP) return; // Disregard redundant GLUT_UP eventsprintf("Scroll %s At %d %d\n", (button == 3) ? "Up" : "Down", x, y);}else{ // normal button eventprintf("Button %s At %d %d\n", (state == GLUT_DOWN) ? "Down" : "Up", x, y);} } <snip...> glutMouseFunc(mouse);

總結

以上是生活随笔為你收集整理的OpenGL鼠标交互的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。