绘制圆形以及球体
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);
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; }效果如下
突然有种小成就感,突然有种想把这东西画成地球的冲动了嘿嘿,后面试试怎么再把他转起来
相关文章推荐
- 解决Vista系统OpenGL驱动问题的方法整理
- Delphi下OpenGL2d绘图之画四边形的方法
- Delphi下OpenGL2d绘图之画点的方法
- Delphi下OpenGL2d绘图之初始化流程详解
- C#实现图形位置组合转换的方法
- C#实现判断图形文件格式的方法
- C#实现图形路径变换的方法
- Delphi使用OpenGL2d绘图之画图片Bmp的方法
- php生成图形验证码几种方法小结
- CentOS的图形安装及初始环境设置教程
- 通过OpenGL ES混合模式缩放视频缓冲区来适应显示尺寸
- VC运用OPENGL加载BMP纹理图的实现方法汇总
- C#实现图形区域组合操作的方法
- php实现图形显示Ip地址的代码及注释
- Java Web开发之图形验证码的生成与使用方法
- android中图形图像处理之drawable用法分析
- Android编程开发之在Canvas中利用Path绘制基本图形(圆形,矩形,椭圆,三角形等)
- Android开发之图形图像与动画(五)LayoutAnimationController详解
- C++实现图形界面时钟表盘代码
- C++实现二维图形的傅里叶变换