第一次写博客,正在上大二,学的计算机专业,因为课很杂,想把自己学过的东西顺便写下来做个记录,写的不好请见谅!
这个学期学的图形学,主要是讲OpenGL的东西,老师让我们自己用GL_LINES、GL_LINE_LOOP、GL_LINE_STRIP等方式画一些自己觉得好看的图形(由于不是教程文章,就不解释这些方法的意思和其他基本的东西了),于是理科生的我想了想也就只能想到五角星了。。。
刚开始有两种思路,一种是确定十个点,分别是五角星的五个凸点和五个凹点,然后用LOOP方法依次连接,第二种方法是只用找五个凸点,在连接的时候像我们平时手画五角星那样连接(假如从最高点为A,依次顺时针为B、C、D、E,那么就按照ACEBD的顺序连接,如下图),两种方法我都尝试过,各有优势吧。

下面这个是方法一的效果图:

首先说第一种方法吧,原理很简单,想象有两个同心圆,一个半径设为R=0.5f,另一个为r=0.2f,大圆上取五个等差点作为凸点,小圆上取五个点作为凹点,并且每个凸点和对应的凹点(如A与a)x与y坐标取负,也就是关于原点对称。
然后根据R和r求出五个点的坐标,如图:

求点的坐标只需要将