导航:首页 > 源码编译 > opengl画圆算法

opengl画圆算法

发布时间:2024-12-04 22:39:02

‘壹’ 用OpenGL中的函数glutSolidSphere画圆为何结果只显示了四分之一个圆

#pragma comment( linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
#include<gl/glut.h>

void Initial()
{
//glEnable(GL_DEPTH_TEST);//启用深度测试,根据坐标的远近自动隐藏被遮住的图形
glClearColor(1.0f,1.0f,1.0f,0.0f);
}
void ChangeSize(int w,int h)
{
GLfloat aspect;
aspect=(float)w/(float)h;
glViewport(w/2,h/2,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
{
glOrtho(0.0f,500.0f,0.0f,500.0f*h/w,1.0f,-1.0f);

}
else
{
glOrtho(0.0f,500.0f*w/h,0.0f,500.0f,1.0f,-1.0f);

}
gluPerspective(90,aspect,1.0,5000000.0);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void Display()
{
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//清除颜色缓冲以及深度缓冲
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glColor3f(1.0f,0.0f,0.0f);//绘图色
//该函数用于渲染一个球体。球体球心位于原点,参数分别为:
glutSolidSphere(50.0,90.0,90.0);
//半径,以Z轴上线段为直径分布的圆周线的条数(将Z轴看成地球的地轴,类似于经线),围绕在Z轴周围的线的条数(类似于地球上纬线)
glFlush();

}

void main(void)
{

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE );

glutCreateWindow("球体");
glutReshapeFunc(ChangeSize);
glutDisplayFunc(Display);
Initial();
glutMainLoop();
}

结果是这样:
希采纳

阅读全文

与opengl画圆算法相关的资料

热点内容
u盘里的cd驱动加密是什么 浏览:413
遗传算法编码长度 浏览:972
pe装服务器需要注意什么 浏览:319
foreach计数php 浏览:525
php自连接 浏览:295
程序员被喷了怎么办 浏览:707
android消息数 浏览:261
为什么在服务器里输不了指令 浏览:28
程序员那么可爱前女友剧情介绍 浏览:101
centosjava环境变量配置 浏览:552
服务器主板被锁如何恢复 浏览:129
xpc语言编程软件 浏览:820
光遇安卓怎么解限制 浏览:300
元气骑士老版源码 浏览:103
助眠解压音频小姐姐口腔音 浏览:232
sql加密身份证号解码 浏览:164
解压玩法视频 浏览:466
苹果xls如何设置加密 浏览:208
湖北广电dns的服务器地址是多少 浏览:529
php获取原始数据 浏览:250