请教关于OPENGL的一个简单问题

DSbatigol 2010-10-29 05:12:17
比如说,一个画图工具,画一条线,鼠标先点一个点,再移动鼠标,这时在你刚才已经选择的点和光标现在位置之间会有一条虚线(也可能是实线),并随着光标的位置变化,当你再次点下鼠标的时候就会确定了这条直线。
请问这个效果叫什么,如果能给点指导就更好了。
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryfdizuo 2010-10-31
  • 打赏
  • 举报
回复
// 鼠标响应函数
mouseDown()
记录起始点 down_point;
mouseMove()
当前current_point;
is_draw_dashed = true; //绘制虚线
mouseUp()
is_draw_line = false;

// 绘制函数
void render()
{
if(!is_draw_line) return;
if(is_draw_dashed)
set_line_style(dashed);

glBegin(GL_LINES);
glVertex(down_point); glVertex(current_point);
glEnd();
}

在glut下面为了获得,鼠标不点击也能捕捉鼠标的效果,使用glutPassiveMotion:
// handle mouse events
glutMouseFunc(mouseDown);
glutMotionFunc(mouseMotion);
glutPassiveMotionFunc(mouseMotion); //important
DSbatigol 2010-10-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feiniao_ 的回复:]

这个要用到OpenGL??
用mfc依次捕获鼠标按下消息、鼠标移动消息、鼠标按下消息,期间不停调用画线函数貌似就能实现了~~~
如果想在三维场景中划线,得先根据鼠标消息的二维坐标生成场景的三维坐标,然后……
[/Quote]
可是中间不停调用划线函数生成的线在鼠标移动到别的地方的时候会自动消失吗?
wuhuwy 2010-10-30
  • 打赏
  • 举报
回复
你鼠标移动到别处就把原来的线擦除掉,参考橡皮条原理
feiniao_ 2010-10-29
  • 打赏
  • 举报
回复
这个要用到OpenGL??
用mfc依次捕获鼠标按下消息、鼠标移动消息、鼠标按下消息,期间不停调用画线函数貌似就能实现了~~~
如果想在三维场景中划线,得先根据鼠标消息的二维坐标生成场景的三维坐标,然后……

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧