亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? fractals.cxx

?? flnx 0.17 是做嵌入linux gui 必備工具箱
?? CXX
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
//// "$Id: fractals.cxx,v 1.1.1.1 2003/08/07 21:18:42 jasonk Exp $"//// Fractal drawing demo for the Fast Light Tool Kit (FLTK).//// This is a GLUT demo program, with modifications to// demonstrate how to add fltk controls to a glut program.   The glut// code is unchanged except for the end (search for fltk to find changes).//// Copyright 1998-1999 by Bill Spitzak and others.//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Library General Public// License as published by the Free Software Foundation; either// version 2 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU// Library General Public License for more details.//// You should have received a copy of the GNU Library General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307// USA.//// Please report all bugs and problems to "fltk-bugs@easysw.com".//#include <config.h>#if !HAVE_GL#include <FL/Fl.H>#include <FL/fl_message.H>int main(int, char**) {  fl_alert("This demo does not work without GL");  return 1;}#else/* * To compile: cc -o fractals fractals.c -lGL -lGLU -lX11 -lglut -lXmu -lm * * Usage: fractals * * Homework 6, Part 2: fractal mountains and fractal trees  * (Pretty Late) * * Draws fractal mountains and trees -- and an island of mountains in water  * (I tried having trees on the island but it didn't work too well.) * * Two viewer modes: polar and flying (both restrained to y>0 for up vector). * Keyboard 0->9 and +/- control speed when flying. * * Only keyboard commands are 0-9 and +/- for speed in flying mode. * * Fog would make the island look much better, but I couldn't get it to work * correctly.  Would line up on -z axis not from eye. * * Philip Winston - 3/4/95 * pwinston@hmc.edu * http://www.cs.hmc.edu/people/pwinston * */#include <FL/glut.H>#include <stdio.h>#include <stdlib.h>#include <math.h>#include <limits.h>           /* ULONG_MAX is defined here */#include <float.h>            /* FLT_MAX is atleast defined here */#include <time.h>  /* for random seed */#include "fracviewer.c" // changed from .h for fltk#if defined(WIN32) || defined(__EMX__)#define drand48() (((float) rand())/((float) RAND_MAX))#define srand48(x) (srand((x)))#endiftypedef enum { NOTALLOWED, MOUNTAIN, TREE, ISLAND, BIGMTN, STEM, LEAF,                MOUNTAIN_MAT, WATER_MAT, LEAF_MAT, TREE_MAT, STEMANDLEAVES,               AXES } DisplayLists;#define MAXLEVEL 8int Rebuild = 1,        /* Rebuild display list in next display? */    Fract   = TREE,     /* What fractal are we building */    Level   = 4;        /* levels of recursion for fractals */     int DrawAxes = 0;       /***************************************************************//************************* VECTOR JUNK *************************//***************************************************************/  /* print vertex to stderr */void printvert(float v[3]){  fprintf(stderr, "(%f, %f, %f)\n", v[0], v[1], v[2]);}#if 0	// removed for FL, it is in fracviewer.c  /* normalizes v */void normalize(GLfloat v[3]){  GLfloat d = sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);  if (d == 0)    fprintf(stderr, "Zero length vector in normalize\n");  else    v[0] /= d; v[1] /= d; v[2] /= d;}  /* calculates a normalized crossproduct to v1, v2 */void ncrossprod(float v1[3], float v2[3], float cp[3]){  cp[0] = v1[1]*v2[2] - v1[2]*v2[1];  cp[1] = v1[2]*v2[0] - v1[0]*v2[2];  cp[2] = v1[0]*v2[1] - v1[1]*v2[0];  normalize(cp);}#endif  /* calculates normal to the triangle designated by v1, v2, v3 */void triagnormal(float v1[3], float v2[3], float v3[3], float norm[3]){  float vec1[3], vec2[3];  vec1[0] = v3[0] - v1[0];  vec2[0] = v2[0] - v1[0];  vec1[1] = v3[1] - v1[1];  vec2[1] = v2[1] - v1[1];  vec1[2] = v3[2] - v1[2];  vec2[2] = v2[2] - v1[2];  ncrossprod(vec2, vec1, norm);}float xzlength(float v1[3], float v2[3]){  return sqrt((v1[0] - v2[0])*(v1[0] - v2[0]) +              (v1[2] - v2[2])*(v1[2] - v2[2]));}float xzslope(float v1[3], float v2[3]){  return ((v1[0] != v2[0]) ? ((v1[2] - v2[2]) / (v1[0] - v2[0]))	                   : FLT_MAX);}/***************************************************************//************************ MOUNTAIN STUFF ***********************//***************************************************************/GLfloat DispFactor[MAXLEVEL];  /* Array of what to multiply random number				  by for a given level to get midpoint				  displacement  */GLfloat DispBias[MAXLEVEL];  /* Array of what to add to random number				before multiplying it by DispFactor */#define NUMRANDS 191float RandTable[NUMRANDS];  /* hash table of random numbers so we can			       raise the same midpoints by the same amount */          /* The following are for permitting an edge of a moutain to be   */         /* pegged so it won't be displaced up or down.  This makes it    */         /* easier to setup scenes and makes a single moutain look better */GLfloat Verts[3][3],    /* Vertices of outside edges of mountain */        Slopes[3];      /* Slopes between these outside edges */int     Pegged[3];      /* Is this edge pegged or not */            /*  * Comes up with a new table of random numbers [0,1)  */void InitRandTable(unsigned int seed){  int i;  srand48((long) seed);  for (i = 0; i < NUMRANDS; i++)    RandTable[i] = drand48() - 0.5;}  /* calculate midpoint and displace it if required */void Midpoint(GLfloat mid[3], GLfloat v1[3], GLfloat v2[3],	      int edge, int level){  unsigned hash;  mid[0] = (v1[0] + v2[0]) / 2;  mid[1] = (v1[1] + v2[1]) / 2;  mid[2] = (v1[2] + v2[2]) / 2;  if (!Pegged[edge] || (fabs(xzslope(Verts[edge], mid)                         - Slopes[edge]) > 0.00001)) {    srand48((int)((v1[0]+v2[0])*23344));    hash = unsigned(drand48() * 7334334);    srand48((int)((v2[2]+v1[2])*43433));    hash = (unsigned)(drand48() * 634344 + hash) % NUMRANDS;    mid[1] += ((RandTable[hash] + DispBias[level]) * DispFactor[level]);  }}  /*   * Recursive moutain drawing routine -- from lecture with addition of    * allowing an edge to be pegged.  This function requires the above   * globals to be set, as well as the Level global for fractal level    */static float cutoff = -1;void FMR(GLfloat v1[3], GLfloat v2[3], GLfloat v3[3], int level){  if (level == Level) {    GLfloat norm[3];    if (v1[1] <= cutoff && v2[1]<=cutoff && v3[1]<=cutoff) return;    triagnormal(v1, v2, v3, norm);    glNormal3fv(norm);    glVertex3fv(v1);    glVertex3fv(v2);    glVertex3fv(v3);  } else {    GLfloat m1[3], m2[3], m3[3];    Midpoint(m1, v1, v2, 0, level);    Midpoint(m2, v2, v3, 1, level);    Midpoint(m3, v3, v1, 2, level);    FMR(v1, m1, m3, level + 1);    FMR(m1, v2, m2, level + 1);    FMR(m3, m2, v3, level + 1);    FMR(m1, m2, m3, level + 1);  }} /*  * sets up lookup tables and calls recursive mountain function  */void FractalMountain(GLfloat v1[3], GLfloat v2[3], GLfloat v3[3],                     int pegged[3]){  GLfloat lengths[MAXLEVEL];  GLfloat fraction[8] = { 0.3, 0.3, 0.4, 0.2, 0.3, 0.2, 0.4, 0.4  };  GLfloat bias[8]     = { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1  };  int i;  float avglen = (xzlength(v1, v2) +                   xzlength(v2, v3) +		  xzlength(v3, v1) / 3);  for (i = 0; i < 3; i++) {    Verts[0][i] = v1[i];      /* set mountain vertex globals */    Verts[1][i] = v2[i];    Verts[2][i] = v3[i];    Pegged[i] = pegged[i];  }  Slopes[0] = xzslope(Verts[0], Verts[1]);   /* set edge slope globals */  Slopes[1] = xzslope(Verts[1], Verts[2]);  Slopes[2] = xzslope(Verts[2], Verts[0]);  lengths[0] = avglen;            for (i = 1; i < Level; i++) {       lengths[i] = lengths[i-1]/2;     /* compute edge length for each level */  }  for (i = 0; i < Level; i++) {     /* DispFactor and DispBias arrays */          DispFactor[i] = (lengths[i] * ((i <= 7) ? fraction[i] : fraction[7]));    DispBias[i]   = ((i <= 7) ? bias[i] : bias[7]);  }   glBegin(GL_TRIANGLES);    FMR(v1, v2, v3, 0);    /* issues no GL but vertex calls */  glEnd();} /*  * draw a mountain and build the display list  */void CreateMountain(void){  GLfloat v1[3] = { 0, 0, -1 }, v2[3] = { -1, 0, 1 }, v3[3] = { 1, 0, 1 };  int pegged[3] = { 1, 1, 1 };  glNewList(MOUNTAIN, GL_COMPILE);  glPushAttrib(GL_LIGHTING_BIT);    glCallList(MOUNTAIN_MAT);    FractalMountain(v1, v2, v3, pegged);  glPopAttrib();  glEndList();}  /*   * new random numbers to make a different moutain   */void NewMountain(void){  InitRandTable(time(NULL));}/***************************************************************//***************************** TREE ****************************//***************************************************************/long TreeSeed;   /* for srand48 - remember so we can build "same tree"                     at a different level */ /*  * recursive tree drawing thing, fleshed out from class notes pseudocode   */void FractalTree(int level){  long savedseed;  /* need to save seeds while building tree too */  if (level == Level) {      glPushMatrix();        glRotatef(drand48()*180, 0, 1, 0);        glCallList(STEMANDLEAVES);      glPopMatrix();  } else {    glCallList(STEM);    glPushMatrix();    glRotatef(drand48()*180, 0, 1, 0);    glTranslatef(0, 1, 0);    glScalef(0.7, 0.7, 0.7);      savedseed = (long)((ulong)drand48()*ULONG_MAX);      glPushMatrix();            glRotatef(110 + drand48()*40, 0, 1, 0);        glRotatef(30 + drand48()*20, 0, 0, 1);        FractalTree(level + 1);      glPopMatrix();      srand48(savedseed);      savedseed = (long)((ulong)drand48()*ULONG_MAX);      glPushMatrix();        glRotatef(-130 + drand48()*40, 0, 1, 0);        glRotatef(30 + drand48()*20, 0, 0, 1);        FractalTree(level + 1);      glPopMatrix();      srand48(savedseed);      glPushMatrix();        glRotatef(-20 + drand48()*40, 0, 1, 0);        glRotatef(30 + drand48()*20, 0, 0, 1);        FractalTree(level + 1);      glPopMatrix();    glPopMatrix();  }}  /*   * Create display lists for a leaf, a set of leaves, and a stem   */void CreateTreeLists(void){  GLUquadricObj *cylquad = gluNewQuadric();  int i;  glNewList(STEM, GL_COMPILE);  glPushMatrix();    glRotatef(-90, 1, 0, 0);    gluCylinder(cylquad, 0.1, 0.08, 1, 10, 2 );  glPopMatrix();  glEndList();  glNewList(LEAF, GL_COMPILE);  /* I think this was jeff allen's leaf idea */    glBegin(GL_TRIANGLES);      glNormal3f(-0.1, 0, 0.25);  /* not normalized */      glVertex3f(0, 0, 0);      glVertex3f(0.25, 0.25, 0.1);      glVertex3f(0, 0.5, 0);      glNormal3f(0.1, 0, 0.25);      glVertex3f(0, 0, 0);      glVertex3f(0, 0.5, 0);      glVertex3f(-0.25, 0.25, 0.1);    glEnd();  glEndList();  glNewList(STEMANDLEAVES, GL_COMPILE);  glPushMatrix();  glPushAttrib(GL_LIGHTING_BIT);    glCallList(STEM);    glCallList(LEAF_MAT);    for(i = 0; i < 3; i++) {      glTranslatef(0, 0.333, 0);      glRotatef(90, 0, 1, 0);      glPushMatrix();        glRotatef(0, 0, 1, 0);        glRotatef(50, 1, 0, 0);        glCallList(LEAF);      glPopMatrix();      glPushMatrix();        glRotatef(180, 0, 1, 0);        glRotatef(60, 1, 0, 0);        glCallList(LEAF);      glPopMatrix();    }  glPopAttrib();  glPopMatrix();  glEndList();  gluDeleteQuadric(cylquad);}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人aaaa| 精品国产免费视频| 91网页版在线| 94色蜜桃网一区二区三区| www.在线欧美| 色综合天天综合给合国产| 91啪亚洲精品| 在线欧美日韩精品| 欧美体内she精视频| 欧美日韩国产a| 日韩欧美一级精品久久| 欧美电影免费观看高清完整版| 欧美久久久久久蜜桃| 91精品国产色综合久久久蜜香臀| 欧美精品少妇一区二区三区| 4438x亚洲最大成人网| 欧美一级二级在线观看| 久久综合九色综合久久久精品综合 | 亚洲欧美日韩人成在线播放| 亚洲欧洲成人精品av97| 亚洲精品伦理在线| 日韩精品电影在线| 黄色日韩网站视频| 粉嫩一区二区三区性色av| av在线不卡观看免费观看| 在线观看国产一区二区| 91精品福利在线一区二区三区| 欧美不卡视频一区| 中文字幕精品三区| 亚洲成a人v欧美综合天堂| 久久99精品国产.久久久久| 国产伦精品一区二区三区免费迷| av成人动漫在线观看| 欧美三区在线观看| 久久久久国色av免费看影院| 亚洲欧美视频在线观看视频| 天堂成人免费av电影一区| 国产精品18久久久久久vr| 色偷偷一区二区三区| 日韩一级免费观看| 亚洲欧洲无码一区二区三区| 午夜精品aaa| 国产成人精品亚洲午夜麻豆| 欧美伊人久久久久久久久影院| 日韩欧美的一区二区| 亚洲人123区| 极品少妇xxxx精品少妇| av亚洲精华国产精华精华| 日韩视频免费直播| 亚洲丝袜制服诱惑| 九色|91porny| 欧美亚洲国产怡红院影院| 久久久激情视频| 亚洲va国产天堂va久久en| 丁香婷婷综合色啪| 日韩午夜av电影| 亚洲男同性视频| 国产福利一区二区三区视频| 欧美日韩国产欧美日美国产精品| 国产精品欧美一级免费| 日韩av午夜在线观看| 91视频一区二区三区| 久久久久久影视| 日本不卡1234视频| 在线观看欧美黄色| 国产精品水嫩水嫩| 精品一区二区三区免费毛片爱| 在线免费观看日韩欧美| 国产精品理论片| 狠狠狠色丁香婷婷综合激情| 91成人免费在线视频| 中文字幕精品在线不卡| 激情综合色综合久久综合| 欧美日韩精品一区二区| 亚洲人成在线观看一区二区| 国产乱色国产精品免费视频| 91精品国产综合久久蜜臀| 一区二区久久久| 91视视频在线直接观看在线看网页在线看| 日韩精品一区二| 欧美96一区二区免费视频| 欧美日韩在线一区二区| 亚洲精品成人悠悠色影视| 国产69精品久久久久777| 精品播放一区二区| 美洲天堂一区二卡三卡四卡视频| 欧美在线不卡视频| 亚洲美女免费视频| 94-欧美-setu| 亚洲少妇30p| aaa亚洲精品| 国产精品久久久久久久久晋中| 国产高清久久久| 国产日韩欧美不卡| 风间由美一区二区av101| 国产欧美日韩另类一区| 国产一区二区三区免费看 | 一区二区三区国产| 91理论电影在线观看| 成人免费在线播放视频| 成人丝袜高跟foot| 国产精品第13页| 94色蜜桃网一区二区三区| 亚洲少妇屁股交4| 欧洲中文字幕精品| 午夜亚洲福利老司机| 欧美日本国产一区| 视频在线观看一区| 日韩免费看的电影| 国产一区999| 国产精品美女久久久久久久网站| 国产高清精品网站| 自拍偷拍国产精品| 欧美综合色免费| 无码av免费一区二区三区试看| 欧美电影影音先锋| 国产中文字幕一区| 亚洲欧洲成人精品av97| 91久久奴性调教| 香蕉加勒比综合久久| 日韩精品中午字幕| 国产成人精品免费在线| 亚洲欧洲无码一区二区三区| 欧美性受xxxx黑人xyx性爽| 丝瓜av网站精品一区二区| 日韩精品中文字幕一区二区三区 | 亚洲va欧美va人人爽| 91麻豆精品国产91久久久| 久久国内精品视频| 国产精品视频观看| 欧洲精品中文字幕| 毛片不卡一区二区| 国产精品免费aⅴ片在线观看| 色婷婷综合久久久久中文一区二区| 亚洲一区日韩精品中文字幕| 欧美一区二区福利视频| 国产福利一区二区| 亚洲精品成人a在线观看| 日韩视频在线永久播放| 成人黄色国产精品网站大全在线免费观看| 亚洲乱码一区二区三区在线观看| 精品视频色一区| 国产aⅴ综合色| 亚洲国产精品久久人人爱蜜臀| 欧美成人高清电影在线| 97超碰欧美中文字幕| 蜜臀精品久久久久久蜜臀| 国产精品美女久久久久aⅴ| 欧美日韩免费一区二区三区视频| 国产在线视视频有精品| 一级精品视频在线观看宜春院| 日韩欧美不卡一区| 色综合 综合色| 国内成人自拍视频| 一区二区三区在线播放| 欧美成人官网二区| 精品视频资源站| 国产91对白在线观看九色| 日韩不卡一区二区三区| 亚洲丝袜制服诱惑| 久久久久久久久久久黄色| 精品视频123区在线观看| gogo大胆日本视频一区| 久久成人羞羞网站| 亚洲一区二区视频在线观看| 国产夜色精品一区二区av| 欧美疯狂性受xxxxx喷水图片| 欧美浪妇xxxx高跟鞋交| 懂色av噜噜一区二区三区av | 欧美高清激情brazzers| www.成人网.com| 狠狠色伊人亚洲综合成人| 五月综合激情日本mⅴ| 1区2区3区精品视频| 精品国产凹凸成av人网站| 欧美午夜在线观看| av在线一区二区三区| 国产精品影视网| 久久福利视频一区二区| 亚洲chinese男男1069| 亚洲柠檬福利资源导航| 国产女主播一区| xnxx国产精品| 日韩精品一区二区三区蜜臀| 欧美日韩免费视频| 色域天天综合网| 成人97人人超碰人人99| 国产乱子轮精品视频| 国内精品视频一区二区三区八戒| 亚洲一区二区在线免费观看视频| 国产精品久久久久久久久搜平片| 久久视频一区二区| 26uuu国产日韩综合| 日韩午夜在线观看视频| 69堂精品视频| 欧美人xxxx| 欧美日韩一级片网站| 欧洲亚洲精品在线| 欧美亚洲国产一卡| 在线一区二区观看|