平面棋盘的绘制——Opengl之3D象棋(1)

这篇博客介绍了如何使用OpenGL绘制3D象棋棋盘,涉及DDA、Bresenham直线生成算法以及圆弧生成算法。首先讲解了OpenGL的基础绘图方法,如点和直线的绘制,接着提供了圆弧的两种画法。然后介绍了自定义直线和圆弧的算法,并强调了坐标变换的重要性。最后展示了棋盘的绘制流程,包括外框、内框和横竖线的绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

综述:


计算机图形学教材中有多种绘图方法,如直线的DDA算法、正负法、Bresenham算法和画圆弧的正负法和Bresenham算法。


OpenGL类库也为我们提供了多种绘图方法,比如 glVertex2d,在这里我们用类库的方法来实现一个机器人的绘制。DDA等算法实现之后我们再替换类库的 glVertex2d 方法。

绘制目标:




我们可以发现,我们需要绘制的是圆弧和直线,以及粗的边框线;


绘制算法:


首先在我的第一篇博客中已经写了基础的OPENGL的应用方式,大家对于这些小基础还不清楚的我就在这里不重复讲了,可以去看看本人的上一篇博客: opengl入门综述


1、先说系统提供的方法:


(1)点和直线

在计算机中,无论计算精度如何提高,始终不能表示一个无穷小的点。另一方面,无论图形输出设备(例如,显示器)如何精确,始终不能输出一个无穷小的点。一般情况下,OpenGL中的点将被画成单个的像素(像素的概念,请自己搜索之~),虽然它可能足够小,但并不会是无穷小。同一像素上,OpenGL可以绘制许多坐标只有稍微不同的点,但该像素的具体颜色将取决于OpenGL的实现。

多边形是由多条线段首尾相连而形成的闭合区域。OpenGL规定,一个多边形必须是一个“凸多边形”(其定义为:多边形内任意两点所确定的线段都在多边形内,由此也可以推导出,凸多边形不能是空心的)。


OpenGL提供了一系列函数指定一个点。它们都以glVertex开头,后面跟一个数字和1~2个字母。例如:

glVertex2d、glVertex2f、glVertex3f、glVertex3fv。。。
数字表示参数的个数,2表示有两个参数,3表示三个,4表示四个
字母表示参数的类型,s表示16位整数、i表示32位整数、f表示32位浮点数、 d表示64位浮点数、v表示传递的几个参数将使用指针的方式。


这些函数除了参数的类型和个数不同以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值