社区
C++ Builder
帖子详情
如何在OpenGL点选已经存在的图形,并用鼠标移动
lbg
2003-10-18 02:33:32
就象AutoCAD里面选择物体一样的:鼠标选择后,物体就有一个反应的,表示选中了。
注:本问题100分,其中20分是ljianq(泉深水清)的,感谢他在我的帖子里回答正确,但是我没有多余的分给他,所以在这里补给他的
...全文
386
17
打赏
收藏
如何在OpenGL点选已经存在的图形,并用鼠标移动
就象AutoCAD里面选择物体一样的:鼠标选择后,物体就有一个反应的,表示选中了。 注:本问题100分,其中20分是ljianq(泉深水清)的,感谢他在我的帖子里回答正确,但是我没有多余的分给他,所以在这里补给他的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lbg
2003-10-25
打赏
举报
回复
mei you ren ma ?
lbg
2003-10-23
打赏
举报
回复
是啊
gfh21cn
2003-10-23
打赏
举报
回复
各位高手帮帮忙
kaimy
2003-10-22
打赏
举报
回复
没有做过OPENGL,帮不上忙!
gfh21cn
2003-10-21
打赏
举报
回复
有谁能提供
以下
GLUquadricObj *quadObj;
glNewList(GLuint(ShapList->Count+1), GL_COMPILE);
quadObj = gluNewQuadric ();
gluQuadricDrawStyle(quadObj, GLU_LINE);
gluSphere (quadObj, 1.5, 16, 16);
glEndList();
ShapList->Add(..);
调用的时候
for(...)
glCallList(..);
的“拾取”代码
非常感谢
我愿意出200分
lbg
2003-10-21
打赏
举报
回复
顶一下
shally5
2003-10-20
打赏
举报
回复
假设你以FORM作为OPENGL的绘制场景。
在FORM的MOUSE的DOWN,MOVE,UP事件中作处理
void __fastcall TFormMain::FormMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button!=mbLeft) return;
MouseDown=true;
MouseStartX = X;
MouseStartY = Y;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if(MouseDown)
{
yrot += (float)(X - MouseStartX);
xrot += (float)(Y - MouseStartY);
MouseStartX=X;
MouseStartY=Y;
}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button!=mbLeft) return;
MouseDown=false;
}
在场景绘制函数中作处理,以下是用鼠标拖动物体转动
void __fastcall TFormMain::DrawGLScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
glLoadIdentity();
glPushMatrix();
glRotatef(xrot,1.0f,0.0f,0.0f);
glRotatef(yrot,0.0f,1.0f,0.0f);
你的场景绘制程序。。。
glPopMatrix();
SwapBuffers(hdc);
}
gfh21cn
2003-10-20
打赏
举报
回复
什么函数,说来听听
yjy1001
2003-10-20
打赏
举报
回复
也去看看书……
gfh21cn
2003-10-20
打赏
举报
回复
哦,多谢
“拾取”
书不在身边,回去看看
shally5
2003-10-20
打赏
举报
回复
手边没带书。。。
你可以看一看任一本OPENGL的书,关于OPENGL拾取的那一节
gfh21cn
2003-10-20
打赏
举报
回复
想用鼠标选中一个物体
我是这样动态的创建了一个物体
GLUquadricObj *quadObj;
glNewList(GLuint(ShapList->Count+1), GL_COMPILE);
quadObj = gluNewQuadric ();
gluQuadricDrawStyle(quadObj, GLU_LINE);
gluSphere (quadObj, 1.5, 16, 16);
glEndList();
ShapList->Add(..);
调用的时候
for(...)
glCallList(..);
我想用鼠标选中其中一个圆柱
应该如何做
freshman2003
2003-10-19
打赏
举报
回复
在DirectX里很好办,有一个专门的函数可以判断鼠标是否点中了物体,OpenGL就不知道了,但我想也应该有这样的函数。
hear_rain
2003-10-19
打赏
举报
回复
这个设计到OpenGL选择与拾取吧,好像要定义一对名字栈
具体的我也不太清楚
lbg
2003-10-19
打赏
举报
回复
我搜不到资料啊...
klbt
2003-10-19
打赏
举报
回复
有趣的问题,帮你顶。
lbg
2003-10-18
打赏
举报
回复
没有人来讨论一下么........
Qt
鼠标
拖动绘制基本几何
图形
(直线、矩形、圆形、椭圆)
本示例使用QGraphics体系来实现,因为要
移动
对象,所以生成的
图形
必须是一个单独的对象,
鼠标
拖动绘制的过程是在临时层中完成,release后生成一个矢量的
图形
item并添加到场景中。 博客地址:...
Nehe的
OpenGL
教程电子书
也许你认为这很简单,但你
已经
迈出了一大步,要知道任何在
OpenGL
中绘制的模型都会被分解为这两种简单的
图形
。 读完了这一课,你会学到如何在空间放置模型,并且会知道深度缓存的概念。 3.添加颜色: 作为第二...
【奇境】
OpenGL
计算机
图形
学编程—从小白到精通
普遍的游戏引擎在独特的领域
已经
无法完全实用,且我们国家要发展自主科技技术,
图形
引擎以及CAD等卡脖子技术一定会蓬勃发展,所以同学们要抓住机会,趁势而上,熟悉底层,博取更大发展,学习
OpenGL
底层接口的应用...
OPenGL
编程书籍
也许你认为这很简单,但你
已经
迈出了一大步,要知道任何在
OpenGL
中绘制的模型都会被分解为这两种简单的
图形
。 读完了这一课,你会学到如何在空间放置模型,并且会知道深度缓存的概念。 3.添加颜色: 作为第二课的...
Arcball like 3D
图形
旋转:显示如何将 arcball 控件添加到 3D 窗口的示例-matlab开发
运行该函数
并用
鼠标
在球体表面上拖放。 您应该注意的一个非常重要的方面是我正在旋转 ACTUAL 3D 对象而不是视点。 这种选择是有特定原因的。
OpenGL
光照与 matlab 中的轴相关联,因此,如果旋转视点,网格表面上...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章