worl.c
来自「细胞自动机的一个源代码」· C语言 代码 · 共 122 行
C
122 行
#include "main.h"int cubelist;/* display inits */void worldinit(void) { int i, j; printf("worl init..."); worl.trx = makedyntrixd(4, 4); for (i=0; i<4; i++) { for (j=0; j<4; j++) { worl.trx->d[i][j] = ((i==j)?1.0:0.0); } } worl.com.x = 0.0; worl.com.y = 0.0; worl.wang = 0.0; worl.zang = 0.0; worl.zoom = -6.0; worl.curzang = 0.0; worl.stazang = 0.0; worl.nexzang = 0.0; worl.curwang = 0.0; worl.stawang = 0.0; worl.nexwang = 0.0; worl.act=0; worl.width = WL_W; worl.height = WL_H; worl.curball = -1; printf("done\n");}void disp_init(world_t *w, ca_t *ca) { int i, j, k; w->com.x = (float)(((float)ca->d[0])/2.0); w->com.y = (float)(((float)ca->d[1])/2.0);}/*void glinit(void) { */void glinit(int mode, world_t *w, float *v) { printf("glinit....\n"); switch (mode) { case 0: printf("default display mode\n"); glEnable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-1.0, 1.0, -1.0, 1.0, 1.0, 100.0); w->v[0] = -1.0; w->v[1] = 1.0; w->v[2] = -1.0; w->v[3] = 1.0; w->v[4] = 1.0; w->v[5] = 100.0; configfunc(w->width, w->height); glMatrixMode(GL_MODELVIEW); break; case 1: printf("user defined projection\n"); glEnable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum((double)v[0], (double)v[1], (double)v[2], (double)v[3], (double)v[4], (double)v[5]); configfunc(w->width, w->height); memcpy(w->v, v, sizeof(float)*6); glMatrixMode(GL_MODELVIEW); break; case 2: printf("user defined ortho\n"); glEnable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho((double)v[0], (double)v[1], (double)v[2], (double)v[3], (double)v[4], (double)v[5]); configfunc(w->width, w->height); memcpy(w->v, v, sizeof(float)*6); glMatrixMode(GL_MODELVIEW); break; default: printf("unkown mode, exiting\n"); exit(0); break; } //initlightmodel(); //initlists(); wlpostredisplay(); printf("...glinit done\n");}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?