用户登录
用户注册

分享至

opengl 画点

  • 作者: 那晚越女说我?
  • 来源: 51数据库
  • 2020-09-25
打开点的反走样试试,
glEnable(GL_POINT_SMOOTH);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);



  用glscalef 函数拉伸球体 即可得到椭圆
#include?
#include?

static?int?year?=?0,?day?=?0;

void?init(void)?
{
???glclearcolor?(0.0,?0.0,?0.0,?0.0);
???glshademodel?(gl_flat|gl_smooth);
}

void?display(void)
{
???glclear?(gl_color_buffer_bit);
???glcolor3f?(1.0,?1.0,?1.0);
???glpushmatrix();
???glrotatef?((glfloat)?day,?0.0,?1.0,?0.0);
???glscalef(1.5f,1.0f,1.0f)?;
???glutwiresphere(1.0,?10,?32);??
???glpopmatrix();
???glutswapbuffers();
}

void?reshape?(int?w,?int?h)
{
???glviewport?(0,?0,?(glsizei)?w,?(glsizei)?h);?
???glmatrixmode?(gl_projection);
???glloadidentity?();
???gluperspective(60.0,?(glfloat)?w/(glfloat)?h,?1.0,?20.0);
???glmatrixmode(gl_modelview);
???glloadidentity();
???glulookat?(0.0,?0.0,?5.0,?0.0,?0.0,?0.0,?0.0,?1.0,?0.0);
}

void?keyboard?(unsigned?char?key,?int?x,?int?y)
{
???switch?(key)?{
??????case?'d':
?????????day?=?(day?+?10)?%?360;
?????????glutpostredisplay();
?????????break;
??????case?'d':
?????????day?=?(day?-?10)?%?360;
?????????glutpostredisplay();
?????????break;

??????case?27:
?????????exit(0);
?????????break;
??????default:
?????????break;
???}
}

int?main(int?argc,?char**?argv)
{
???glutinit(&argc,?argv);
???glutinitdisplaymode?(glut_double?|?glut_rgb);
???glutinitwindowsize?(500,?500);?
???glutinitwindowposition?(100,?100);
???glutcreatewindow?(argv[0]);
???init?();
???glutdisplayfunc(display);?
???glutreshapefunc(reshape);
???glutkeyboardfunc(keyboard);
???glutmainloop();
???return?0;
}
软件
前端设计
程序设计
Java相关