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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? curves.c

?? 計算機圖形學~想必是很多人需要的~在此共享一下
?? C
字號:
/*  curves.c       */

/* E. Angel, Interactive Computer Graphics */
/* A Top-Down Approach with OpenGL, Third Edition */
/* Addison-Wesley Longman, 2003 */


/*****  Simple interactive curve drawing program.****  The following keyboard commands are used to control the**  program:****    q - Quit the program**    c - Clear the screen**    e - Erase the curves**    b - Draw Bezier curves**    i - Draw interpolating curves**    s - Draw B-spline curves***/
/* All control points are converted to Bezier
control point to allow use of OpenGL evaluators */

#include <GL/glut.h>typedef enum{    BEZIER,    INTERPOLATED,    BSPLINE} curveType;void keyboard(unsigned char key, int x, int y);void computeMatrix(curveType type, float m[4][4]);void vmult(float m[4][4], float v[4][3], float r[4][3]);/* Colors to draw them in */GLfloat colors[][3] ={   { 1.0, 0.0, 0.0 },   { 0.0, 1.0, 0.0 },   { 0.0, 0.0, 1.0 }};#define MAX_CPTS  25            /* Fixed maximum number of control points */GLfloat cpts[MAX_CPTS][3];int ncpts = 0;static int width = 500, height = 500;           /* Window width and height *//* Matrix stuff *//* This routine multiplies two 4 x 4 matrices. *//* This routine multiplies a 4 x 4 matrix with a vector of 4 points. */void vmult(float m[4][4], float v[4][3], float r[4][3]){    int i, j, k;    for (i = 0; i < 4; i++)        for (j = 0; j < 3; j++)            for (k = 0, r[i][j] = 0.0; k < 4; k++)                r[i][j] += m[i][k] * v[k][j];}/* Interpolating to Bezier matrix */static float minterp[4][4] = {    { 1.0, 0.0, 0.0, 0.0 },    { -5.0/6.0, 3.0, -3.0/2.0, 1.0/3.0 },    { 1.0/3.0, -3.0/2.0, 3.0, -5.0/6.0 },    { 0.0, 0.0, 0.0, 1.0 }, };/* B-spline to Bezier matrix */static float mbspline[4][4] = {    { 1.0/6.0, 4.0/6.0, 1.0/6.0, 0.0 },    { 0.0, 4.0/6.0, 2.0/6.0, 0.0 },    { 0.0, 2.0/6.0, 4.0/6.0, 0.0 },    { 0.0, 1.0/6.0, 4.0/6.0, 1.0/6.0 },};static float midentity[4][4] ={	{ 1.0, 0.0, 0.0, 0.0},	{ 0.0, 1.0, 0.0, 0.0},	{ 0.0, 0.0, 1.0, 0.0},	{ 0.0, 0.0, 0.0, 1.0}};/* Calculate the matrix used to transform the control points */void computeMatrix(curveType type, float m[4][4]){    int i, j;    switch (type)    {        case BEZIER:            /* Identity matrix */            for (i = 0; i < 4; i++)                for (j = 0; j < 4; j++)					m[i][j] = midentity[i][j];            break;        case INTERPOLATED:            for (i = 0; i < 4; i++)                for (j = 0; j < 4; j++)                    m[i][j] = minterp[i][j];            break;        case BSPLINE:            for (i = 0; i < 4; i++)                for (j = 0; j < 4; j++)                    m[i][j] = mbspline[i][j];            break;     }}/* Draw the indicated curves using the current control points. */static void drawCurves(curveType type){    int i;    int step;    GLfloat newcpts[4][3];    float m[4][4];    /* Set the control point computation matrix and the step size. */    computeMatrix(type, m);	if(type == BSPLINE) step = 1;	else step = 3;    glColor3fv(colors[type]);    /* Draw the curves */    i = 0;    while (i + 3 < ncpts)    {        /* Calculate the appropriate control points */        vmult(m, &cpts[i], newcpts);        /* Draw the curve using OpenGL evaluators */        glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &newcpts[0][0]);        glMapGrid1f(30, 0.0, 1.0);        glEvalMesh1(GL_LINE, 0, 30);        /* Advance to the next segment */        i += step;    }    glFlush();}/* This routine displays the control points */static void display(void){    int i;    glClear(GL_COLOR_BUFFER_BIT);    glColor3f(0.0, 0.0, 0.0);    glPointSize(5.0);    glBegin(GL_POINTS);    for (i = 0; i < ncpts; i++)        glVertex3fv(cpts[i]);    glEnd();    glFlush();}/* This routine inputs new control points */static void mouse(int button, int state, int x, int y){    float wx, wy;    /* We are only interested in left clicks */    if (button != GLUT_LEFT_BUTTON || state != GLUT_DOWN)        return;    /* Translate back to our coordinate system */    wx = (2.0 * x) / (float)(width - 1) - 1.0;    wy = (2.0 * (height - 1 - y)) / (float)(height - 1) - 1.0;    /* See if we have room for any more control points */    if (ncpts == MAX_CPTS)        return;    /* Save the point */    cpts[ncpts][0] = wx;    cpts[ncpts][1] = wy;    cpts[ncpts][2] = 0.0;    ncpts++;    /* Draw the point */    glColor3f(0.0, 0.0, 0.0);    glPointSize(5.0);    glBegin(GL_POINTS);    glVertex3f(wx, wy, 0.0);    glEnd();     glFlush();}/* This routine handles keystroke commands */void keyboard(unsigned char key, int x, int y){    static curveType lasttype = BEZIER;    switch (key)    {        case 'q': case 'Q':            exit(0);            break;        case 'c': case 'C':			ncpts = 0;			glutPostRedisplay();            break;        case 'e': case 'E':            glutPostRedisplay();            break;        case 'b': case 'B':            drawCurves(BEZIER);            lasttype = BEZIER;             break;        case 'i': case 'I':            drawCurves(INTERPOLATED);            lasttype = INTERPOLATED;             break;        case 's': case 'S':            drawCurves(BSPLINE);            lasttype = BSPLINE;             break;    }}/* This routine handles window resizes */void reshape(int w, int h){    width = w;    height = h;    /* Set the transformations */    glMatrixMode(GL_PROJECTION);    glLoadIdentity();    glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);    glMatrixMode(GL_MODELVIEW);    glViewport(0, 0, w, h);}main(int argc, char **argv){    /* Intialize the program */    glutInit(&argc, argv);    glutInitDisplayMode(GLUT_RGB);    glutInitWindowSize(width, height);    glutCreateWindow("curves");    /* Register the callbacks */    glutDisplayFunc(display);    glutMouseFunc(mouse);    glutKeyboardFunc(keyboard);    glutReshapeFunc(reshape);	glClearColor(1.0, 1.0, 1.0, 1.0);    glEnable(GL_MAP1_VERTEX_3);    glutMainLoop();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
男女性色大片免费观看一区二区| 一区二区三区在线免费播放| 一区二区高清免费观看影视大全| 乱中年女人伦av一区二区| 91美女在线观看| 精品电影一区二区| 亚洲国产美国国产综合一区二区| 成人在线一区二区三区| 国产精品国产a| 蜜乳av一区二区| 欧美在线视频不卡| 国产精品久久夜| 这里只有精品视频在线观看| 中文欧美字幕免费| 国内精品伊人久久久久av影院| 欧美三级电影网站| 日韩毛片在线免费观看| 国产在线国偷精品产拍免费yy| 欧美日韩国产大片| 亚洲欧美二区三区| 国产99久久久国产精品| 精品福利在线导航| 日韩不卡一二三区| 欧美日韩三级一区| 亚洲精品伦理在线| 99精品桃花视频在线观看| 国产色产综合色产在线视频 | 欧美精品18+| 亚洲精品日产精品乱码不卡| 粉嫩aⅴ一区二区三区四区五区| 日韩欧美一区在线观看| 日韩精品视频网站| 欧美日韩国产不卡| 亚洲无人区一区| 欧美亚洲国产一区二区三区| 亚洲欧美中日韩| 成人黄动漫网站免费app| 欧美激情一二三区| 国产成人免费视频一区| 久久久精品黄色| 国产一区欧美一区| 337p日本欧洲亚洲大胆精品| 久久国产福利国产秒拍| 欧美成人一区二区三区| 麻豆freexxxx性91精品| 69堂成人精品免费视频| 日本欧洲一区二区| 日韩亚洲欧美在线观看| 六月丁香婷婷色狠狠久久| 欧美一区二区三区视频免费| 日韩不卡免费视频| 91麻豆精品国产综合久久久久久| 日韩中文字幕一区二区三区| 欧美高清激情brazzers| 美女国产一区二区三区| 精品国产一二三| 国产乱码精品1区2区3区| 国产亚洲精品aa午夜观看| 国产很黄免费观看久久| 国产精品每日更新| 色婷婷综合五月| eeuss影院一区二区三区| 亚洲欧美在线观看| 在线看日韩精品电影| 天天综合色天天综合| 欧美一区二区免费| 精品影院一区二区久久久| 久久精品水蜜桃av综合天堂| av在线这里只有精品| 亚洲精品第一国产综合野| 欧美日韩在线观看一区二区| 日本三级亚洲精品| 国产亚洲一区二区在线观看| 99久久精品国产一区| 亚洲一区二区三区国产| 91精品国产乱码| 国产麻豆一精品一av一免费 | 精品999在线播放| 国产99久久久国产精品潘金 | 欧美大肚乱孕交hd孕妇| 国产一区欧美一区| 亚洲女女做受ⅹxx高潮| 欧美精品在线观看一区二区| 狠狠色综合播放一区二区| 中文字幕中文字幕中文字幕亚洲无线| 日本乱码高清不卡字幕| 蜜桃视频一区二区三区在线观看| 欧美激情在线免费观看| 欧美中文字幕亚洲一区二区va在线| 美女视频网站久久| 日本一区二区成人在线| 欧美亚洲动漫制服丝袜| 九九视频精品免费| 亚洲免费观看高清完整| 欧美一级日韩免费不卡| 成人午夜av电影| 丝瓜av网站精品一区二区| 国产欧美一区二区精品久导航 | 91在线观看污| 日韩二区在线观看| 国产精品视频你懂的| 欧美日韩国产区一| 成人午夜私人影院| 日本少妇一区二区| 亚洲人妖av一区二区| 日韩欧美中文字幕公布| 91色婷婷久久久久合中文| 六月丁香婷婷久久| 亚洲一区二区不卡免费| 久久蜜桃av一区二区天堂 | 99精品视频中文字幕| 美女精品一区二区| 亚洲美女视频一区| 国产亚洲精久久久久久| 欧美日韩aaa| 99国产精品一区| 国产一区不卡视频| 偷拍一区二区三区| 亚洲免费av观看| 国产欧美精品一区二区色综合| 欧美日韩在线综合| 97久久人人超碰| 国产一区二区三区免费看 | 国产精品久久久久久福利一牛影视 | 国产成人啪午夜精品网站男同| 爽好多水快深点欧美视频| 最新久久zyz资源站| 久久看人人爽人人| 日韩午夜中文字幕| 欧美日韩一区二区在线视频| 91天堂素人约啪| 国产69精品一区二区亚洲孕妇| 奇米一区二区三区| 亚洲小说欧美激情另类| 国产精品高潮呻吟| 国产日产欧美一区二区三区| 日韩三级精品电影久久久| 欧美高清性hdvideosex| 日本韩国欧美在线| 94-欧美-setu| 成人免费观看av| 国产成人精品亚洲午夜麻豆| 九九九精品视频| 麻豆视频观看网址久久| 日产欧产美韩系列久久99| 无码av中文一区二区三区桃花岛| 亚洲精品成a人| 亚洲欧美日韩中文播放 | 欧美精品一区二区不卡| 日韩精品专区在线影院重磅| 91精品国产色综合久久| 这里只有精品电影| 9191国产精品| 6080午夜不卡| 制服丝袜中文字幕一区| 欧美伦理电影网| 欧美日本高清视频在线观看| 欧美亚洲另类激情小说| 欧美探花视频资源| 欧美日韩一区国产| 欧美一区二区三区四区视频| 欧美一个色资源| 日韩精品一区二区三区视频| 日韩欧美亚洲另类制服综合在线 | 91香蕉国产在线观看软件| av中文字幕不卡| 色哟哟国产精品免费观看| 色综合天天综合网天天看片| 日韩国产一区二| 男女男精品视频| 黄色成人免费在线| 国产成人午夜视频| 不卡的av电影| 日本高清不卡aⅴ免费网站| 91福利精品视频| 欧美日韩一区不卡| 欧美一区二区福利视频| 精品久久久久久最新网址| 久久嫩草精品久久久精品一| 久久精品人人做人人爽97| 国产精品日日摸夜夜摸av| 亚洲精品你懂的| 免费久久99精品国产| 国产乱人伦偷精品视频免下载 | 亚洲地区一二三色| 日韩电影一二三区| 国内国产精品久久| 丁香桃色午夜亚洲一区二区三区| 97se亚洲国产综合自在线| 欧美性生活一区| 欧美刺激午夜性久久久久久久 | 欧美伦理视频网站| 337p粉嫩大胆色噜噜噜噜亚洲 | 欧美一级片在线看| 欧美国产欧美综合| 亚洲午夜激情网页| 激情综合网激情| 99re热这里只有精品免费视频| 欧美唯美清纯偷拍| 精品少妇一区二区三区在线视频|