opengl怎么实现鼠标拖拽着画直线??
就是鼠标点一下之后不要松开往任意方向拖拽屏幕上就显示一跟动态的跟随鼠标位置动的线,一旦鼠标松开了,直线就确定的画出来。求高手指点啊!!!谢谢!!...
就是鼠标点一下之后不要松开 往任意方向拖拽 屏幕上就显示一跟动态的跟随鼠标位置动的线, 一旦鼠标松开了,直线就确定的画出来。
求高手指点啊!!!谢谢!! 展开
求高手指点啊!!!谢谢!! 展开
1个回答
展开全部
不断更新两点的数据,然后绘图
追问
请问能不能说详细一点? 比如用哪些函数。。。我刚学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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询