3D视图中获取鼠标所在位置
在3D视图中,经过旋转、缩放、平移之后,任然可以获取鼠标位置对应的真实坐标。
思路:获取OpenGL模型矩阵和投影矩阵, 对鼠标位置信息进行反投影计算。
主要函数:
glReadPixels 通过深度缓存获取Z坐标
gluUnProject 实现反投影
POINT point; // 鼠标位置
GLint viewport[4];
GLdouble mvmatrix[16], projmatrix[16];
glGetIntegerv(GL_VIEWPORT, viewport); // viewport[3] is height of window in pixels
glGetDoublev(GL_MODELVIEW_MATRIX, mvmatrix); // 模型变换矩阵
glGetDoublev(GL_PROJECTION_MATRIX, projmatrix); // 投影矩阵
GLDouble winx = point.x, winy = viewport[3] - point.y - 1;
GLFloat fdepth;
glReadPixels(point.x, viewPort[3]-point.y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &fdepth);
GLDouble winz = fdepth;
GLDouble objx, objy, objz;
gluUnProject(winx, winy, winz, mvmatrix, projmatrix, viewport, &objx, &objy, &objz); // 反投影
3D视图中获取鼠标所在位置相关推荐
- WPF中获取鼠标相对于桌面位置
原文:WPF中获取鼠标相对于桌面位置 var transform = PresentationSource.FromVisual(this).CompositionTarget.TransformFr ...
- WPF中获取鼠标相对于屏幕的位置
WPF中获取鼠标相对于屏幕的位置 周银辉 WPF编程时,我们经常使用Mouse.GetPosition(IInputElement ...
- IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)
IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题) 参考文章: (1)IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题) (2)https:// ...
- jq和js用mousemove获取鼠标当前位置
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Windows核心编程_获取鼠标指定位置的RGB颜色值
Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...
- python 移动鼠标位置_python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,利用它可以实现自动化任务 本章介绍了许多不同函数,下面是快速的汇总参考: moveTo(x,y)将鼠 ...
- openlayers学习——10、openlayers监听获取鼠标坐标位置
openlayers监听获取鼠标坐标位置 前言:基于Vue,学习openlayers,根据官网demo,记录常用功能写法.本人不是专业GIS开发,只是记录,方便后续查找. 参考资料: openlaye ...
- shell脚本中获取当前所在目录地址
shell脚本中获取当前所在目录如下 #!/bin/bashwork_path=$(dirname $0) cd ${work_path} work_path=$(pwd) cd ${work_pat ...
- WPF 获取鼠标屏幕位置、窗口位置、控件位置
原文:WPF 获取鼠标屏幕位置.窗口位置.控件位置 public struct POINT{public int X;public int Y;public POINT(int x, int y){t ...
最新文章
- Java GC 日志解析
- python初学者web还是爬虫-还在纠结学爬虫还是数据分析,不如看看这篇文章
- 分治递归逆序数_[模板] 归并排序 逆序数 分治
- LaTex 并集交集等
- 4MLinux 24.0 发布
- Java中使用Jacob实现Windows下语音合成并生成音频文件
- RedirectToAction()转移方式及参数传递
- Git 常用操作 | 重写 commit 历史
- springboot项目中关于时间类型转换的格式问题
- js 设置password placeholder样式_150+ 个优质的 Node.js 包和资源
- 怎么打断点_孩子注意力不集中怎么办?7招提升儿童专注力,方法简单效果好...
- github fork别人项目后如何同步更新原项目
- Android Studio GPU/CPU/Network/Memory monitor使用
- netdev_priv
- 加域电脑激活指纹识别
- hook(useState、useEffect、useReducer)、context、React项目起始
- Vlink——虚链路
- 基于android的手机位置系统,基于Android和SIM900A模块的位置实时监控系统的设计与实现...
- 水印去除(基于nosie2noise优化 代码+模型)
- Linux free 查看内存使用情况 常用命令