opengl怎么实现鼠标拖拽着画直线??

就是鼠标点一下之后不要松开往任意方向拖拽屏幕上就显示一跟动态的跟随鼠标位置动的线,一旦鼠标松开了,直线就确定的画出来。求高手指点啊!!!谢谢!!... 就是鼠标点一下之后不要松开 往任意方向拖拽 屏幕上就显示一跟动态的跟随鼠标位置动的线, 一旦鼠标松开了,直线就确定的画出来。
求高手指点啊!!!谢谢!!
展开
 我来答
冬天是冬天
2013-02-06 · 超过12用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:22.4万
展开全部
不断更新两点的数据,然后绘图
追问
请问能不能说详细一点? 比如用哪些函数。。。我刚学openGL几天。。还不是很懂。。

谢谢!!!!
追答
(虽然有点晚)
以下是伪代码(我用 DirectX , 不太了解 openGL):

#define 未按下 1
#define A点确定 2
#define B点确定 3

int *video; // 记录视频地址的地方

mousestate mouse_state; // 记录鼠标状态
int line_state = 未按下; // 记录线的状态
int x1,y1,x2,y2; // 记录两点位置

int main()
{
while( 1 )
{
// 获取视频地址
video = get_video(XXX);

// 获取鼠标的状态和位置
mouse_state = get_mouse_state(XXX);

// 根据鼠标状态和线的完成情况判断线的状态
if(鼠标左键按下)
{
switch(line_state)
{
case 未按下:
// A点确定;
line_state = A点确定;
x1 = mouse_state.x;
y1 = mouse_state.y;
break;

case A点确定
// B点确定;
x2 = mouse_state.x;
y2 = mouse_state.y;
line_state = B点确定;
break;
}
}

if( line_state == A点确定 )
// 根据 x1 y1 x2 y2 画线
draw_line(x1, y1, x2, y2, video, ,... );

if( line_state == B点确定 )
// 完成线的绘制, 跳出 while 语句
break;

}

// 现在 x1 y1 x2 y2 就是线的两端点的位置了
return 0;

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式