您的位置:首页 > 运维架构

绘制圆形以及球体

2016-04-25 18:12 281 查看
上次学会了如何绘制正方体和正四面体,今天开始绘制球体,估计不难,嘿嘿,为了稳妥起见,从圆形开始

果然很简单。。三分钟搞定,代码如下

#include<GL/GLUT.H>
#include <windows.h>
#include <math.h>
#include <gl/GL.h>

float pi =3.1415927f;
float r= 0.8f;

void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0, 1.0, 0.0);
glBegin(GL_LINE_STRIP);
for (int i = 0; i <= 30; i++)
{
glVertex2f(r*cos(2*pi*i/30),r*sin(2*pi*i/30));
}
glEnd();

glFlush();
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("opengl1");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}



下面着手画球体,争取几分钟之内搞定

十分钟搞定,越来越发现跟数学的关系好紧密啊

#include<GL/GLUT.H>
#include <windows.h>
#include <math.h>
#include <gl/GL.h>

float pi =3.1415927f;
float r= 0.8f;

void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
glRotatef(30, 1, 1, 1);
glFrontFace(GL_CCW);

for (int j = 0; j < 20; ++j)
{
glBegin(GL_LINE_STRIP);
for (int i = 0; i <= 20; i++)
{
glVertex3f(r*sin(pi*j / 20)*cos(2 * pi*i / 20), r*sin(pi*j / 20)*sin(2 * pi*i / 20),r*cos(pi*j/20));
}
glEnd();

glBegin(GL_LINE_STRIP);
for (int i = 0; i <= 20; i++)
{
glVertex3f(r*sin(pi*i / 20)*cos(2 * pi*j / 20), r*sin(pi*i / 20)*sin(2 * pi*j / 20), r*cos(pi*i / 20));
}
glEnd();
}

glFlush();
}

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("opengl1");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
效果如下



突然有种小成就感,突然有种想把这东西画成地球的冲动了嘿嘿,后面试试怎么再把他转起来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opengl 图形