本文介绍两种方法用opengl绘制一个球体,一种是计算球面点的位置,然后画出来,另一种是glut工具箱自带的函数。
一、直接绘制法
直接贴代码,解释都写在注释里了。绘制时先移动好坐标系,然后调用这方法画就行。
<span style="font-family:SimSun;font-size:12px;">//球心坐标为(x,y,z),球的半径为radius,M,N分别表示球体的横纵向被分成多少份
void drawSphere(GLfloat xx, GLfloat yy, GLfloat zz, GLfloat radius, GLfloat M, GLfloat N)
{
float step_z = PI/M; <span style="white-space: pre;"> </span>//z方向每次步进的角度
float step_xy = 2*PI/N; <span style="white-space: pre;"> </span>//x,y平面每次步进的角度
float x[4],y[4],z[4]; <span style="white-space: pre;"> </span>//用来存坐标
float angle_z = 0.0; <span style="white-space: pre;"> </span>//起始角度
float angle_xy = 0.0;
int i=0, j=0;
glBegin(GL_QUADS);

本文详细介绍了如何使用OpenGL通过两种方式绘制球体:一是计算球面上的点并绘制,二是利用GLUT工具箱的glutWireSphere和glutSolidSphere函数。其中,glutWireSphere用于绘制丝状球,glutSolidSphere用于绘制实心球。参数包括球体半径、以Z轴上线段为直径的圆周线数和围绕Z轴的线数。在高版本的IDE如VS2012中运行可能遇到安全性错误,可通过特定方法解决。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



