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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? support4.cpp

?? 通過C++和GLUT
?? CPP
字號:

////////////////////////////////////////////////////////////////////////
//
// Support code for assignment 4 (cs411 f07)  
//
////////////////////////////////////////////////////////////////////////
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>


#define ABS(x) ((x)<0 ? -(x) : (x))


typedef struct{
  float x,y;
} Point;


int   vxMax,vyMax;             // current viewport
float wxMin,wxMax,wyMin,wyMax; // current window

Point pt[100];  // global point array
int ptNum = 0;  // current number of points
bool visible=true;
int activePt = -1;


int findMatchingPointIndex(float x, float y)
{
  // 
  // Find a point in the list
  //
  int i;

  for(i=0;i<ptNum;i++) 
    if((ABS(pt[i].x - x) < 1) && (ABS(pt[i].y - y) < 1)) break;

  if (i<ptNum) return i;
  else return -1;
}


void transformGlSelection(int x, int y, float *xv, float *yv)
{
  //
  // perform the inverse of the window-to-viewport transform
  //
  *xv=((float)(x-0)    /vxMax)*(wxMax-wxMin)+wxMin; 
  *yv=((float)(vyMax-y)/vyMax)*(wyMax-wyMin)+wyMin; 
}


void init(void) 
{
  glClearColor (0.0, 0.0, 0.0, 0.0);
  glEnable (GL_POINT_SMOOTH);
  glPointSize(8.0);
  glLineWidth(2.0);
}


void reshape (int w, int h)
{
  //
  // Map [-50..50][-50..50] to the entire viewport (aspect ratio may change)
  //
  glViewport(0, 0, vxMax = (GLsizei) w, vyMax = (GLsizei) h);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  glOrtho(wxMin = -50.0, wxMax = 50.0, wyMin = -50.0, wyMax = 50.0, -1.0, 1.0);
  glMatrixMode(GL_MODELVIEW);
}


void keyboard(unsigned char key, int x, int y)
{
   switch (key) {
     case 27:
       exit(0);
   }
}

void mouse(int button, int state, int x, int y) 
{
  float xv,yv;
  int i;

   switch (button) {
      case GLUT_LEFT_BUTTON:
        if (state == GLUT_DOWN){
          transformGlSelection(x,y,&xv,&yv);
          i=findMatchingPointIndex(xv, yv);
          if(i < 0){
            pt[ptNum].x=xv;
            pt[ptNum].y=yv;
            activePt = ptNum;
            ptNum++;
          }
          else activePt = i;
		}
		else if (state == GLUT_UP){
          activePt = -1;
		}
        break;
	  case GLUT_RIGHT_BUTTON:
		  if(state == GLUT_DOWN){
			  if(visible)
			  {
				  visible = false;
			  }
			  else
			  {
				 visible = true;
			  }
		  }
		  break;

      default:
         break;
   }
   glutPostRedisplay();
}


void motion(int x, int y) 
{
  float xv,yv;

  if(activePt < 0) return;
  transformGlSelection(x,y,&xv,&yv);
  pt[activePt].x=xv;
  pt[activePt].y=yv;

  glutPostRedisplay();
}

float B0(float u)
{
	float B0;
	if(u>=0 && u<1)
		B0=0.5*u*u;
	else if(u>=1 && u<2)
		B0=0.5*u*(2-u)+0.5*(u-1)*(3-u);
	else if(u>=2 && u<3)
		B0=0.5*(3-u)*(3-u);
	else
		B0=0;

	return B0;
}

float B1(float u)
{
	float B1;
	if(u>=1 && u<2)
		B1=0.5*(u-1)*(u-1);
	else if(u>=2 && u<3)
		B1=0.5*(u-1)*(3-u)+0.5*(u-2)*(4-u);
	else if(u>=3 && u<4)
		B1=0.5*(4-u)*(4-u);
	else 
		B1=0;

	return B1;

}

float B2(float u)
{
	float B2;
	if(u>=2 && u<3)
		B2=0.5*(u-2)*(u-2);
	else if(u>=3 && u<4)
		B2=0.5*(u-2)*(4-u)+0.5*(u-3)*(5-u);
	else if(u>=4 && u<5)
		B2=0.5*(5-u)*(5-u);
	else 
		B2=0;

	return B2;

}

float B3(float u)
{
	float B3;
	if(u>=3 && u<4)
		B3=0.5*(u-3)*(u-3);
	else if(u>=4 && u<5)
		B3=0.5*(u-3)*(5-u)+0.5*(u-4)*(6-u);
	else if(u>=5 && u<6)
		B3=0.5*(6-u)*(6-u);
	else 
		B3=0;

	return B3;

}



void display(void)
{
  int i,j;
  float u;

  glClear (GL_COLOR_BUFFER_BIT);
  glColor3f (1.0, 1.0, 1.0);

  glBegin(GL_POINTS);
  for(i=0;i<ptNum;i++) glVertex2f(pt[i].x,pt[i].y);
  if(activePt>=0){
    glColor3f(1.0,0.0,0.0);
    glVertex2f(pt[activePt].x,pt[activePt].y);
    glColor3f(1.0,1.0,1.0);
  }
  glEnd();



  //
  // YOUR CODE FOR GENERATING THE CURVE HERE
  //
  if(visible)
  {
  glBegin(GL_POINTS);
  Point curPt;
  for(j=0;j+3<ptNum;j++){
	  for(u=2;u<=4;){
	  curPt.x = pt[j].x*B0(u)+pt[j+1].x*B1(u)+pt[j+2].x*B2(u)+pt[j+3].x*B3(u);
  	  curPt.y = pt[j].y*B0(u)+pt[j+1].y*B1(u)+pt[j+2].y*B2(u)+pt[j+3].y*B3(u);
	  glColor3f(0.0,0.0,1.0);
	  glVertex2f(curPt.x,curPt.y);
	  glColor3f(1.0,1.0,1.0);
	  u+=0.005;
	  
	  }
  }
  glEnd();
  }


  // THIS IS AN EXAMPLE OF HOW TO ACCESS THE POINTS
  //
  for(i=0;i<ptNum;i++) printf("(%4.1f,%4.1f) ",pt[i].x,pt[i].y);
  printf("\n-----------------------------\n");


  glFlush ();
}



int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
   glutInitWindowSize (500, 500); 
   glutInitWindowPosition (100, 100);
   glutCreateWindow (argv[0]);

   init ();
   glutDisplayFunc(display); 
   glutReshapeFunc(reshape);
   glutKeyboardFunc(keyboard);
   glutMouseFunc(mouse);
   glutMotionFunc(motion);

   glutMainLoop();
   return 0;
}


////////////////////////////////////////////////////////////////////////
// EOF
////////////////////////////////////////////////////////////////////////

 
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91原创在线视频| 成人丝袜高跟foot| 亚洲精品国产品国语在线app| 欧美一激情一区二区三区| 91丨九色丨蝌蚪富婆spa| 成人v精品蜜桃久久一区| 大桥未久av一区二区三区中文| 国产精品一区免费在线观看| 韩国欧美国产一区| 国产精品一二三在| 国产成人免费在线观看不卡| 国产69精品久久777的优势| 国产乱子伦一区二区三区国色天香| 精品一区二区三区久久| 国产91对白在线观看九色| 国产一区不卡在线| www.亚洲国产| 欧美亚洲自拍偷拍| 91精品国产91热久久久做人人| 日韩亚洲欧美综合| 欧美国产日本韩| 亚洲黄色小说网站| 蜜桃视频在线一区| 国产精品一区在线观看你懂的| 成人影视亚洲图片在线| 91麻豆精东视频| 欧美一区二区播放| 欧美国产在线观看| 亚洲一区国产视频| 国产自产2019最新不卡| 99re66热这里只有精品3直播 | 成人免费黄色大片| 色综合久久久久久久久久久| 欧美一区二区三区视频在线| 久久久国产午夜精品| 亚洲伦理在线精品| 狠狠狠色丁香婷婷综合激情 | 日韩一区二区三区免费看 | 美女脱光内衣内裤视频久久影院| 国产一区二区三区在线观看免费 | 精品久久久久久最新网址| 久久精品夜夜夜夜久久| 亚洲综合丁香婷婷六月香| 国内精品伊人久久久久av影院| 99在线精品免费| 欧美国产精品久久| 亚洲高清一区二区三区| 成人午夜在线视频| 日韩视频一区二区在线观看| 亚洲三级电影网站| 国产成人免费高清| 日韩欧美激情在线| 午夜影视日本亚洲欧洲精品| 成人免费看视频| 精品国免费一区二区三区| 亚洲一区欧美一区| 不卡av电影在线播放| 精品免费国产二区三区| 视频一区二区欧美| 91黄视频在线观看| 中文字幕在线免费不卡| 国内精品久久久久影院薰衣草 | 国产色婷婷亚洲99精品小说| 亚洲成av人片一区二区三区| 成人黄页在线观看| 久久久久久久久久美女| 老色鬼精品视频在线观看播放| 欧亚一区二区三区| 一级做a爱片久久| 一本大道久久a久久综合| 亚洲欧洲精品一区二区精品久久久| 国模少妇一区二区三区| 日韩女优毛片在线| 麻豆精品一区二区av白丝在线| 欧美日韩在线一区二区| 午夜精品久久久久久久久久久 | 99精品欧美一区二区三区综合在线| 欧美成人艳星乳罩| 韩国av一区二区三区| 精品国产乱子伦一区| 久久成人av少妇免费| 欧美成人精精品一区二区频| 另类人妖一区二区av| 精品剧情在线观看| 国产一区视频网站| 国产免费观看久久| 91麻豆蜜桃一区二区三区| 亚洲精品国产无套在线观| 欧美中文字幕亚洲一区二区va在线| 亚洲另类中文字| 欧美高清视频www夜色资源网| 天天射综合影视| 日韩午夜精品视频| 国产老妇另类xxxxx| 国产日韩欧美高清在线| 91蝌蚪porny成人天涯| 亚洲国产成人porn| 日韩美女天天操| 丁香婷婷综合色啪| 亚洲国产视频在线| 欧美一级日韩一级| 99精品在线观看视频| 亚洲一区二区三区四区在线免费观看 | 26uuuu精品一区二区| 成人在线视频一区二区| 亚洲精品欧美激情| 91麻豆精品国产91久久久更新时间| 蜜桃视频第一区免费观看| 国产丝袜在线精品| 日本道在线观看一区二区| 美国精品在线观看| 国产精品久久午夜| 欧美一区二区三区思思人| 粉嫩高潮美女一区二区三区 | 精品卡一卡二卡三卡四在线| 不卡一区二区三区四区| 亚洲国产精品一区二区尤物区| 日韩欧美成人一区二区| 91视频com| 国产伦精品一区二区三区免费| 亚洲另类春色校园小说| 精品国产99国产精品| 欧洲色大大久久| 成人性生交大片免费| 青草av.久久免费一区| **欧美大码日韩| 精品精品国产高清a毛片牛牛| 91成人免费在线| 成人午夜激情在线| 久久精品噜噜噜成人av农村| 亚洲精品久久久蜜桃| 亚洲国产激情av| 精品国产百合女同互慰| 欧美日韩卡一卡二| 色一情一伦一子一伦一区| 国产成人鲁色资源国产91色综| 日韩高清不卡在线| 亚洲一区二区三区四区的| 综合久久国产九一剧情麻豆| 国产午夜亚洲精品羞羞网站| 日韩亚洲欧美综合| 欧美精品vⅰdeose4hd| 色婷婷av一区二区三区gif| 大胆亚洲人体视频| 国内精品自线一区二区三区视频| 美女一区二区久久| 美女诱惑一区二区| 另类小说一区二区三区| 蜜桃久久精品一区二区| 奇米亚洲午夜久久精品| 亚洲成精国产精品女| 亚洲综合一区二区| 亚洲一卡二卡三卡四卡无卡久久 | 在线看日韩精品电影| 一本色道久久加勒比精品| aaa欧美色吧激情视频| 成人黄页在线观看| 97久久精品人人做人人爽| 91小视频免费观看| 欧美中文字幕一区二区三区亚洲| 色天使久久综合网天天| 欧美在线你懂得| 欧美日韩精品一二三区| 日韩一二三区视频| 国产午夜久久久久| 中文字幕一区二区三区在线不卡 | 亚洲成人av免费| 久久精品99国产精品| 国产中文字幕精品| 国产成人精品影视| 色菇凉天天综合网| 91精品久久久久久蜜臀| 精品福利一二区| 国产精品久久久久国产精品日日| 中文字幕一区二区三| 亚洲一区影音先锋| 久久精品国产一区二区三区免费看 | 在线一区二区三区四区| 欧美日本一区二区在线观看| 欧美成人精品福利| 亚洲少妇屁股交4| 丝袜诱惑制服诱惑色一区在线观看| 免费在线欧美视频| 成人激情免费网站| 在线成人av影院| 国产日韩欧美不卡在线| 亚洲高清一区二区三区| heyzo一本久久综合| 99久久综合精品| 欧美一区二区三区视频免费| 精品国产91久久久久久久妲己 | 欧美一区二区三区四区视频 | 欧美精品aⅴ在线视频| 精品国精品自拍自在线| 亚洲猫色日本管| 国产一区二区剧情av在线| 欧美亚洲国产一区二区三区va | 国产精品素人视频| 五月综合激情婷婷六月色窝| 丁香六月久久综合狠狠色|