opengl如何实现鼠标平移物体

我想实现鼠标左键拖动物体,但是我仿照http://blog.csdn.net/yulinxx/article/details/39256965改的代码,鼠标一点击物体就消失了,
void CDrawCubeDemoView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_MouseDownPoint=point;
SetCapture();
CView::OnLButtonDown(nFlags, point);
}

void CDrawCubeDemoView::OnLButtonUp(UINT nFlags, CPoint point)
{
ReleaseCapture();
CView::OnLButtonUp(nFlags, point);
}

void CDrawCubeDemoView::OnMouseMove(UINT nFlags, CPoint point)
{
m_xPos+=(point.x-m_MouseDownPoint.x)*2;
m_yPos+=(m_MouseDownPoint.y-point.y)*2;
m_MouseDownPoint=point;
glTranslated(m_xPos, m_yPos, -10.0);

CView::OnMouseMove(nFlags, point);

}

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
OpenGL实现对三维对象的旋转、平移和缩放功能
该实例目的是在VC下利用OpenGL接口实现=三维实体旋转、平移和缩放功能,鼠标操作很流畅,对需要这些功能的开发人员具有重要参考价值!
OpenGL实现的鼠标控制三维空间物体的移动
要实现鼠标控制三维空间物体的移动就首先必须把鼠标坐标的屏幕移动信息转换为鼠标在三维空间移动的信息,反向利用上面的变换流程就可以实现了。因为视口变换不是一一映射的,所以一个屏幕坐标对应的在相机坐标内的一条线段,线段的一段在视体近剪裁平面上,另外一端在视体的远剪裁平面上。这里,我们可以作一个经过我们需要移动的物体的一个平面,这个平面与近剪裁平面相平行,这个平面与上面所提的线段有一个交点,这个交点就是鼠
OpenGL实现鼠标绕任意轴旋转/平移/缩放
刚刚学opengl的童鞋肯定有个苦恼的麻烦,只会绘制一个三角形,但是想像那些三维软件那样用鼠标控制视角还是有点困难的,所以我就封装了一个场景漫游类:RoamingScenceManager,这个类使用非常方便,跟界面没有半毛钱关系,可以在Qt,原生OpenGL,MFC用,下面的内容是简单介绍怎么用,然后就给出上述三个环境的具体例子。        RoamingScenceManager类 v
OpenGL利用glut库,使用鼠标控制物体缩放平移旋转
使用vs2010作为平台。需要支持鼠标滚轮的GLUT和内置在系统中的OpenGL。新手作品,供初学者参考。
OpenGL之鼠标控制坐标系旋转、缩放、移动
OpenGL之鼠标控制坐标系旋转、缩放、移动 1、实现代码 void CMyStatic::OnMouseMove(UINT nFlags, CPoint point) {     // TODO: 在此添加消息处理程序代码和/或调用默认值     if (point.x     {         int diffX = (int)(point.x - m_fLastX
opengl绘制桌子(平移、旋转、缩放)
主要仪器设备 VisualStudio C++2015 Windows10环境 Glut压缩包 Ex2工程 操作方法和实验步骤 1.绘制立方体 桌子由立方体组成,我们可以通过绘制六个面来构造一个立方体。六个面的绘制需要八个顶点的参数,而每个顶点均有x,y,z三个参数,如果全部传入的话参数的个数会达到8*3=24个。而我们只需要知道2个x,2个y以及2个z即可构造八个顶点。如图
OpenGL与旋转、缩放、平移
2018-05-09   旋转看起来挺费劲的,其实非常简单。我们只需要给shader传入MVP矩阵即可。旋转分为两类:camera旋转、物体旋转。当指定MVP矩阵时,Model矩阵是每个物体携带的数据,Projection矩阵是由camera 的fov、aspect、near/far距离决定的,对于camera旋转,我们只需要更新View矩阵即可。View矩阵由三部分组成:eye pos,look...
[OpenGL]用鼠标拖拽图形移动
今天做计算机图形学实验。题目布置了写程序使图形移动,于是我就写了这个程序。 使用的环境是Code::Blocks + GLUT,Code::Blocks配置GLUT实现OpenGL的教程可以看这篇: http://blog.csdn.net/yang_7_46/article/details/24674849 想要实现用鼠标拖拽使图形移动,首先需要考虑两个问题: 1.如何接受鼠标产
计算机图形学-三维物体的平移、旋转、防缩
要求 利用OpenGL函数画一个三维物体; 利用鼠标或键盘控制三维物体在屏幕上移动、旋转和放缩 (1)移动:不能直接调用OpenGL几何变换函数,运用齐次坐标,采用矩阵相乘的方式自己编程实现; (2)旋转、放缩可以调用OpenGL函数 使用工具: Visual Studio C++控制台 opengl 效果图: 实现步骤: 1.基本三维物体绘制:旋转坐标系,...
OpenGL实现鼠标旋转缩放平移操作
VS2015+OpenGL;加载OFF文件,实现鼠标旋转缩放平移操作,添加2个光源。
OpenGL实现三维物体旋转,缩放
VS2008+OpenGL读取三维点云数据,旋转,缩放。点云文件格式为txt
OpenGL鼠标移动方块
思路:用变量设定方块的坐标,然后根据鼠标的位移更改方块的变量坐标。 注意:方块的绘图坐标系和世界坐标系是重合的,鼠标所在的坐标是以窗口的左上角为原点(0,0)的坐标系,窗口的左下角的世界坐标系为gluOrho2D(left, right, bottom, top)中的(left, bottom)。所以鼠标的坐标(xMouse, yMouse)转化为世界坐标(x, y)为: x = xMouse;...
用glut库实现旋转,平移,缩放
平移glTranslate<f,d>(tx,ty,tz),对于二维情形,tz=0.0示例如下:glTranslatef(3.0,2.0f,0.0f);旋转 glRotate<f,d>(theta,vx,vy,vz):    theta,vx,vy,vz指定这个旋转物体的矩阵,物体将绕着(0,0,0)到(x,y,z)的直线以逆时针旋转,参数 theta表示旋转的角度。取正时为...
OSG学习笔记24——根据鼠标平移的位置正确设置物体平移量
一直以来都没有将这个平移量设置正确,也没有考虑清楚这个视景体的问题。今天终于弄明白啦。先看图,其实归根结底都是透视投影的原理。 之前计算平移量的时候总是得不到正确的平移,也没有理解到为什么,经过实践检验真理,才真正理解到了原理。 在屏幕上的鼠标移动只是计算了在屏幕上移动的像素,要想正确的映射到物体的移动量上,就需要将这个量投影到真正的操作平面,就是这里的D平面。 讲一下实现流程,假设鼠标
OpenGL实现物体移动
用OpenGL super Bible(5th)中提供的API实现物体的移动,可以用键盘按键移动或旋转物体
OpenGL之旋转、平移、缩放
旋转:glRotatef(angle,x,y,z) (x,y,z)为轴 平移:glTranslatef(x,y,z) (x,y,z)为平移向量 在z轴上平移有缩放的味道 缩放:glScalef(x,y,z) (x,y,z)为各方向上放大倍数#include <GL/glut.h> #include <windows.h> #include <stdlib.h> #incl
OpenGL实现平移缩放旋转
  #define GLEW_STATIC #include &amp;lt;GL\glew.h&amp;gt; #include &amp;lt;GLFW/glfw3.h&amp;gt; #include &amp;lt;iostream&amp;gt; #include &quot;Shader.h&quot; #define STB_IMAGE_IMPLEMENTATION #include &quot;stb_image.h&quot; #include &amp;l...
VC++调用OpenGL实现3维图形的旋转,平移和缩放
在参考了洞庭散人关于OpenGL的系列文章之后,我自己实现了VC++调用OpenGL绘制3维图形,并实现旋转,平移和缩放,记录下来,以备以后查看,也可以帮助和我同等水平的人学习。 运行效果如下: 1. 开发环境,VC6 2.下载opengl的库文件,至少包括 将glut头文件复制到Microsoft Visual Studio\VC98\Include\GL 将glut和gl
OpenGL: 绘制3D物体、鼠标交互、反向变换
/* reference http://nehe.gamedev.net/article/using_gluunproject/16013/ */ #include // windows系统要加这个。因为下面2个头文件的一些宏是在这个文件中定义的 #include #include //这两个头文件在OpenGL程序中几乎必加。 #include //标准输入输出,
freeglut 和 opengl实现三维物体的旋转和缩放
转载github:https://github.com/liangliangh/glut_demo/blob/master/main.cpp 百度网盘:vs2008工程:https://pan.baidu.com/s/1ggiLpDL 密码4yxd freeglut 和 opengl实现效果图 #include #include #include "freeglut.
鼠标控制摄像机旋转,平移,物体的移动
#region 点击物体移动     public Camera ca;     public GameObject DianjiObj;//点击到的物体     Ray ray;//射线     RaycastHit raycast;//射线返回的碰撞信息     Vector3 StarMousePos;//一开始鼠标的位置     Vector3 vector3;//要移动的距离
OpenGL键盘 WSADQE进行旋转缩放平移简单操作
http://blog.csdn.net/yulinxx/article/details/59538755在上篇的基础上,添加键盘的控制,实现物体的缩放,平移,旋转操作 分析: 放大: 当摄像机沿Z轴靠近物体,则物体显示会变大,反之则小 左右平移: 摄像机往左移,则看到的物体往右移 旋转: 以相机到物体的距离为半径进行旋转 当旋转后,再平移,比如相机到了b位置,再平移,以绿线为向量进行平
3D 模型,OpenGL显示,旋转,平移缩放。以及各种光照控制
先声明:在此之前已上传了一个(是一个deom性质的,传错了) 现在这个,里面有一个简单的基于face的数据结构,用于保存读入的数据。 并且对读入的数据进行openGL显示,可以旋转,缩放,平移。 旋转:按下鼠标左键 拖动 缩放:鼠标滚轮上下滚动 平移:鼠标左键按下平移鼠标 以及一些光照控制工具栏。 另注:本代码是在 vc6.0 + intel9.0编译器下,调试的。 如有问题,可与本人联系啊,^_^
OpenGL ES总结(二)OpenGL坐标变换之平移及旋转
世界坐标系: 在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的。你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定:窗口范围按此单位恰好是(-1,-1)到(1,1),即屏幕左下角坐标为(-1,-1),右上角坐标为(1,1)。 openGL使用右手坐标 从左到右,x递增 从下到上,y递增 从远到近,z递增 当前绘图坐标系:
GLFW+OpenGL三维空间旋转模型的算法
在三维软件中,用鼠标控制三维模型旋转是很必要的,可以方便使用者观察模型,具有诸多优势,那么如何实现呢?有两种方案,一种是控制模型旋转,这种方法将着色器中的model进行旋转变换即可;另一种是旋转摄像头,这种方法其实利用了相对运动的原理,要让模型旋转,其实也就是让观察者在以机器人模型为原点的球面坐标系中运动,当然运动之后,观察者也要旋转相应的角度。                          ...
OpenGL键盘控制图形移动
在NeHe框架基础之上,绘制一个正方形,控制其移动,通过移动坐标轴来实现:1,定义全局变量GLfloat size = 0.5f;GLfloat max = 10.0f;GLfloat color[2][3] = {{1.0f, 0.0f, 0.0f},{0.0f, 1.0f, 0.0f}}; // 0红,1绿GLfloat x = 0.0f;GLfloat y = 0
OpenGL中的鼠标移动和锁定
在OpenGL的图形化界面中不可避免会使用到鼠标的操作,而想让视角跟着鼠标一起移动并不是一件方便的事。为了达到这个目的需要根据鼠标的移动不断地改变gluLookAt函数中传入的参数,以改变视角。而要使视角的变化与鼠标移动的方向大小均一致,需要进行一定的矩阵计算。为此我们自己写了个(三维)Vector类,实现了基本的向量运算,包括点乘(运算符重载*)和叉乘(OuterProduct函数),以及一个友
鼠标控制物体缩放旋转(opengl+glut)
基于glutMouseFunc和glutMotionFunc的用鼠标控制物体的缩放和旋转的小例子,分享学习一下。
现代OpenGL+Qt学习笔记之六:绘制可旋转、带光照效果的三维物体
本文主要介绍了一种最简单的光照理论,以及其在现代OpenGL中的实现方式。同时为了从不同角度观察物体的光照效果,还实现了用鼠标控制物体的旋转和缩放。后面会介绍更加复杂一点的光照模型,使得渲染结果更加真实,还有逐片元渲染技术,可以令曲面表现更加平滑。
opengl 教程(14) 摄像机控制(1)
http://www.cnblogs.com/mikewolf2002/archive/2013/01/15/2861821.html 原帖地址:http://ogldev.atspace.co.uk/www/tutorial14/tutorial14.html       前面一篇教程中,我们把摄像机放在三维空间的固定位置,本章我们尝试控制摄像机,在三维空间任意方
OpenGL鼠标旋转缩放及STL三维模型显示(Demo.exe)
1. 鼠标显示STL三维模型; 2. 支持旋转、缩放和平移; 3. 该资源为demo.exe,如果需要源码请搜索:OpenGL鼠标旋转缩放及STL三维模型显示(源码)
计算机图形与OpenGL学习七(三维几何变换1.三维平移与三维坐标轴旋转)
三维几何平移与三维坐标轴旋转三维集合变换的方法是在二维方法的基础上扩充了z坐标而得到。多数情况下,该扩充比较直接,但有一些情况,比如旋转,该扩充就不那么明显。一个三维位置在齐次坐标中表示为4元列向量。因此,每一次几何变换操作表示为一个从左边去乘坐标向量的4x4矩阵。 1.   三维平移其矩阵变换形式为:类似二维坐标变化的实现,我们可以构造一个平移矩阵,如果不懂,请转到矩阵表示和齐次坐标:void ...
OpenGL的glTranslatef平移变换函数详解
glTranslated()和glTranslatef()这两个函数是定义一个平移矩阵,该矩阵与当前矩阵相乘,使后续的图形进行平移变换。 我们先看定义: void glTranslated(GLdouble x,              GLdouble y,              GLdouble z); void glTranslatef(GLdouble x,   
OpenGL入门(三):图形随鼠标转动
void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz); 函数功能:定义一个视图矩阵,并与当前矩阵相乘。 eyex,eyey,eyez表示相机在世界坐标系中的
【一步步学OpenGL 6】 -《平移变换》
教程6:平移变换原文: http://ogldev.atspace.co.uk/www/tutorial06/tutorial06.html背景从这个教程开始我们开始研究各种各样的图形变换,图形变换就可以让一个3d物体在屏幕中变换的的时候看上去保持有深度的错觉,也就是立体的投影效果。实现立体效果的方法是使用一个经过多次相乘的变换矩阵得到的最终变换矩阵来和顶点的位置再相乘,这样得到3d物体的一个多次变
3D 模型OpenGL显示,旋转、缩放,平移及复位
该资源用于显示3D模型(网格数据) 可用于旋转,缩放,平移及复位。
最全opengl鼠标键盘控制事件
opengl前后滚轮,鼠标左右中键,键盘f1f2f3等等,可以直接使用,有问题留言,帮助解决,本资源不是那种发起者自己跑都跑不了的
[opengl]简单的opengl程序,实现四方体左右移动以及响应键盘运动
#ifndef GLUT_DISABLE_ATEXIT_HACK #define GLUT_DISABLE_ATEXIT_HACK #endif #define GLEW_STATIC #include &amp;lt;GL/glew.h&amp;gt; #include &amp;lt;GL/wglew.h&amp;gt; #include &amp;lt;GL/freeglut.h&amp;gt; #include &amp;lt;...
OpenGL 入门教程(六) 旋转加平移
// SphereWorld.cpp // OpenGL SuperBible // New and improved (performance) sphere world // Program by Richard S. Wright Jr. #include #include #include #include #include #include #include #inclu
unity中用鼠标控制物体实现缩放、平移、旋转
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MouseMoveandScaleRotation : MonoBehaviour { public float rotationSpeed = 100; //设置旋转的速度 public Transform
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习opengl opengl教程python