【计算机图形学】实验2:橡皮筋技术及拾取操作

实验2  橡皮筋技术及拾取操作

一、实验目的

        本实验旨在通过实现橡皮筋技术和拾取操作,帮助学生深入理解OpenGL中的交互式图形编程。学生将学习如何使用鼠标输入来动态创建和修改图形,掌握橡皮筋技术的实现方法,通过实时反馈增强用户体验。同时,实验将介绍如何实现对象的拾取操作,使学生能够选择和操作屏幕上的图形对象,培养对坐标转换和碰撞检测的理解。通过这一过程,学生将提高对OpenGL事件处理机制的掌握,增强编程能力和解决实际问题的能力,为后续更复杂的图形应用打下坚实基础。

二、实验步骤

2.1 OpenGL中利用鼠标实现橡皮筋技术

1)在鼠标点击界面之前,页面将不显示任何内容;

2)当鼠标点击第一次,会确定第一个坐标,鼠标移动函数的实时状态的坐标会临时作为第二个坐标,此刻等于第一个坐标(重合为点),所以绘制函数也只能画成一个点,不过仍然会切换缓存,并清空OpenGL命令缓存区。

3)当鼠标点击第一次后移动,鼠标移动函数的坐标会随着鼠标的位置动态变化,并会动态存为第二个坐标,所以绘制函数画成的线也会动态的变化(模拟出橡皮筋的效果),每变一次就会切换一次缓存,并清空OpenGL命令缓存区。

4)当鼠标点击第二次,就会确定第二个坐标,鼠标移动函数的实时状态的坐标会临时作为第二个坐标,此刻等于第二个坐标,绘制函数便画出一条确定的线,会切换缓存,并清空OpenGL命令缓存区。

5)当鼠标点击第一次后移动,移动函数便不会起作用了。

6)当鼠标再一次点击,就会确定该点击点坐标为第一个坐标,同(1),原来的直线会在切换缓存,清空OpenGL命令缓存区中消失,如此往复下去

7)上面说到的都是点击鼠标左键,可以设置点击鼠标右键,将任意时刻作出的图(线、点)清空。

完整代码如下:

#include <gl/glut.h>

int iPointNum = 0;                     

int x1 = 0, x2 = 0, y1 = 0, y2 = 0;       

int winWidth = 400,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值