重载鼠标事件:

void AxMapControl::mousePressEvent(QMouseEvent* e)
{
switch(currentTool)
{
case AX_DRAW_DIRECTION:
{
if (e->button() == Qt::LeftButton)
{
QPoint screenPt=e->pos();
qglviewer::Vec orig1, dir1;
camera()->convertClickToLine(screenPt, orig1, dir1);
double valueZ=0;
double a = ( valueZ- orig1.z) / dir1.z;
Pnt.z = valueZ;
Pnt.x = orig1.x + dir1.x * a;
Pnt.y = orig1.y + dir1.y * a;
//QMessageBox::information(this, "PickPoint", QString::number(Pnt.x) + "," + QString::number(Pnt.y));
}
break;
} }
QGLViewer::mousePressEvent(e);
}

重载绘制方法

void AxMapControl::draw()
{
if (pimpl->points.size()>0)
{
QMutexLocker locker(&pimpl->mutex_);
glColor3f(255/255.0, 69/255.0, 0.0);
draw_3d_points(pimpl->points);
}
if (pimpl->pointCloudOneFrame.size()>0)
{
QMutexLocker locker(&pimpl->mutex_);
glColor3f(255/255.0, 69/255.0, 0.0);
for (vector<Point3ds>::const_iterator it = pimpl->pointCloudOneFrame.begin();it != pimpl->pointCloudOneFrame.end(); ++it)
{
const Point3ds& p = *it;
if (p.size()>0)
{
draw_3d_points(p);
} }
}
if (!glImg.isNull())
{
glNormal3f(0.0, 0.0, 1.0);
glBegin(GL_QUADS);
glTexCoord2f(0.0, 1.0-v_max);
glVertex2f(-u_max*ratio,-v_max);
glTexCoord2f(0.0, 1.0);
glVertex2f(-u_max*ratio, v_max);
glTexCoord2f(u_max, 1.0);
glVertex2f( u_max*ratio, v_max);
glTexCoord2f(u_max, 1.0-v_max);
glVertex2f( u_max*ratio,-v_max);
glEnd();
} if (currentTool==AX_DRAW_DIRECTION)
{
glBegin(GL_LINES);
glColor3f(255/255.0, 0/255.0, 0.0);
glVertex3fv(currentPose);
glVertex3fv(Pnt);
glEnd();
}

效果:

[QGLViewer]3D场景鼠标点击位置的更多相关文章

  1. Unity 弹出界面时屏蔽对3D场景的点击

    注:这里的UI制作用的是NGUI插件 如题,在游戏中经常会遇到这种情况,场景中点击相关物体或者按钮弹出对应的2D界面,这时候除了2D界面上的可点击按钮等,应该屏蔽掉对3D场景的点击或者拖动事件. 在这 ...

  2. js 获取页面高度和宽度(兼容 ie firefox chrome),获取鼠标点击位置

    <script> //得到页面高度 var yScroll = (document.documentElement.scrollHeight >document.documentEl ...

  3. u3d 鼠标点击位置,物体移动过去。 U3d mouse clicks position, objects move past.

    u3d 鼠标点击位置,物体移动过去. U3d mouse clicks position, objects move past. 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱: ...

  4. 每天一个JavaScript实例-铺货鼠标点击位置并将元素移动到该位置

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. (二)Three光线检测-实现摄像机向鼠标点击位置滑动动画

    (二)Three.js光线检测 摘要:使用three.js中的光线检测 Raycaster() ,实现一下效果: 通过点击处的坐标,修改摄像机位置,实现摄像机由远及近的过渡动态效果(由远景到近景) 1 ...

  6. C# winform 获取鼠标点击位置

    说明:该篇随笔的代码内容并非出自本人,是在其他网站搜寻的,出处已经不记得了,本次随笔只为记录,目的帮助自己,帮助他人. 实现的原理也不做多的赘述,直接上代码. 第一个类是需要用到的Windows AP ...

  7. 3D场景鼠标点选择物体

    对于以下几种选择: (1)点云: (2)线框: (3)网格: 针对以上准备三个函数: (1)获取点和线段最短距离函数: (2)获取线段和线段最短距离函数: (3)获取三角面片和线段最短距离函数: 算法 ...

  8. (原)python中matplot中获得鼠标点击的位置及显示灰度图像

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6182474.html 参考网址: http://matplotlib.org/examples/pyl ...

  9. 获取鼠标点击相对于Canva位置的2种方法

    如果给Canvas添加 onmousedown事件,获取到的鼠标位置都是相对于当前文档的位置(x,y):

随机推荐

  1. IDEA自动编译设置

    ctrl+alt+s: ctrl+shift+alt+/:

  2. 1. Mysql数据库的安装

    1. Mysql数据库的安装 (1)打开Mysql安装软件,同意相关协议进入下一步安装,在选择安装类型中选择[自定义]进入下一步安装. (2)选择安装的组件信息. (3)服务器软件安装目录 (4)数据 ...

  3. Scala断言

    断言:提供了一组断言函数以用作在代码中记录和动态检查不变量的方式. import scala.Predef._ def addNaturals(nats: List[Int]): Int = { // ...

  4. RandomForest中的feature_importance

    随机森林算法(RandomForest)的输出有一个变量是 feature_importances_ ,翻译过来是 特征重要性,具体含义是什么,这里试着解释一下. 参考官网和其他资料可以发现,RF可以 ...

  5. 如何把py文件打包成exe可执行文件

    如何把py文件打包成exe可执行文件 1.安装 pip install pyinstaller 或者 pip install -i https://pypi.douban.com/simple pyi ...

  6. Django----ModelFrom

    ModelForm a. class Meta: model, # 对应Model的 fields=None, # 字段 exclude=None, # 排除字段 labels=None, # 提示信 ...

  7. 2018ACM-ICPC南京区域赛M---Mediocre String Problem【exKMP】【Manacher】

    这题就单独写个题解吧.想了两天了,刚刚问了一个大佬思路基本上有了. 题意: 一个串$S$,一个串$T$,在$S$中选一段子串$S[i,j]$,在$T$中选一段前缀$T[1,k]$使得$S[i,j]T[ ...

  8. [No0000190]vim8安装教程和vim中文帮助文档Vimcdoc安装方法-Vim使用技巧(5)

    Vim8.0是近十年来的一次大更新,支持任务.异步I/O.Channels和JSON以及异步计时器.Lambdas 和 Closures等,还包括对GTK + 3的支持.由于ubuntu默认安装的Vi ...

  9. [No0000B1]ReSharper操作指南2/16-ReSharper食谱与特定于域的教程

    自动导入名称空间 有关更多信息,请参阅导入缺少命名空间. 每当您使用未添加using语句的命名空间中的类型时,ReSharper会为您提供在您所在文件的顶部添加相应的语句.这由在所使用的类型上方显示的 ...

  10. [No0000120]Python教程3/9-第一个Python程序

    现在,了解了如何启动和退出Python的交互式环境,我们就可以正式开始编写Python代码了. 在写代码之前,请千万不要用“复制”-“粘贴”把代码从页面粘贴到你自己的电脑上.写程序也讲究一个感觉,你需 ...