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

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

?? tin3dview.cpp

?? Tin3D.rar 三維TIN的構建方面的東西
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
void CTin3DView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
    glViewport(0,0,cx,cy);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
	if(cx<=cy)
		glOrtho(-500.0,500.0,-500.0*(GLfloat)cy/(GLfloat)cx,
		500.0*(GLfloat)cy/(GLfloat)cx,-500.0,500.0);
    else
		glOrtho(-500.0*(GLfloat)cx/(GLfloat)cy,
		500.0*(GLfloat)cx/(GLfloat)cy,-500.0,500.0,-500.0,500.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
	
	
}

void CTin3DView::OnPaint() 
{
	
	
	CPaintDC dc(this); 
	glColor3f(0,0.4,1);
	glClear(GL_COLOR_BUFFER_BIT);
	
	CalculateNormal();    //三角面法向量
	GLfloat light_position0[]={-108,0,180,0.0f};
	GLfloat light_specular0[]={1,1,1,1};
	GLfloat light_diffuse[]={1.0f,1.0f,1.0f,0.0f};
	glLightfv(GL_LIGHT0,GL_POSITION,light_position0);
	glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular0);
	glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);
	glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_FALSE);
	this->OPenGL_Lighting();
	if (n)
	{glPushMatrix();
	
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
	
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);  
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);  
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);			
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,GL_DECAL);    //在此處更改映射模式,選擇GL_DECAL、GL_MODULATE、GL_BLEND分別察看演示效果
	glEnable(GL_TEXTURE_2D);
	glShadeModel(GL_FLAT);   //更改GL_SMOOTH、GL_FLAT進行試驗,察看效果
	/*  設置紋理坐標和物體幾何坐標 */
	glRotatef(m_Rotateangle, 1, 1, 1);
	//紋理坐標的定義與演示效果,該圖位于左下,紋理與圖形表面吻合
	for (int i=0; i<m_triangles.size(); i++)
	{
		glBegin(GL_TRIANGLES);
		glTexCoord2f(0.0, 0.0); 
		glVertex3f(m_triangles[i].ptr[0].x, m_triangles[i].ptr[0].y, m_triangles[i].ptr[0].z);
		glTexCoord2f(0.0, 1.0); 
		glVertex3f(m_triangles[i].ptr[1].x, m_triangles[i].ptr[1].y, m_triangles[i].ptr[1].z);
		glTexCoord2f(1.0, 1.0);
		glVertex3f(m_triangles[i].ptr[2].x, m_triangles[i].ptr[2].y, m_triangles[i].ptr[2].z);
		glEnd();
	}
	glFlush();
	glDisable(GL_TEXTURE_2D);
	glPopMatrix();
	}
	
	
	
	
	
	//		this->OPengl_Tuxture();
	
	
	
	
	
}



void CTin3DView::CalculateNormal()
{
    initial();
	GLdouble dVector1[3],dVector2[3],norm[3];
	for (int i=0; i<m_triangles.size(); i++)
	{
		dVector1[0] = m_triangles[i].ptr[1].x - m_triangles[i].ptr[0].x;
		dVector1[1] = m_triangles[i].ptr[1].y - m_triangles[i].ptr[0].y;
		dVector1[2] = m_triangles[i].ptr[1].z - m_triangles[i].ptr[0].z;
		
		dVector2[0] = m_triangles[i].ptr[2].x - m_triangles[i].ptr[0].x;
		dVector2[1] = m_triangles[i].ptr[2].y - m_triangles[i].ptr[0].y;
		dVector2[2] = m_triangles[i].ptr[2].z - m_triangles[i].ptr[0].z;
		
		norm[0]=dVector1[1]*dVector2[2]-dVector1[2]*dVector2[1];
		norm[1]=dVector1[2]*dVector2[0]-dVector1[0]*dVector2[2];
		norm[2]=dVector1[0]*dVector2[1]-dVector1[1]*dVector2[0];
		
		double dNormalLength=sqrt(norm[0]*norm[0] + norm[1]*norm[1] + norm[2]*norm[2]);
		
		if(dNormalLength!=0.0)
		{
			m_triangles[i].Normal[0]=norm[0]/dNormalLength;
			m_triangles[i].Normal[1]=norm[1]/dNormalLength;
			m_triangles[i].Normal[2]=norm[2]/dNormalLength;
		}
		else
		{
			m_triangles[i].Normal[0]=0;
			m_triangles[i].Normal[1]=0;
			m_triangles[i].Normal[2]=0;
		}
	}
	
}

void CTin3DView::OnOpenglLighting() 
{
	
	Invalidate(true);	
}

void CTin3DView::OPenGL_Lighting()
{
    glPushMatrix();
	GLfloat mat_diffuse[]={0.0f,1.0f,0.4f,1.0f};
    GLfloat mat_specular[]={0.0f,1.0f,0.4f,1.0f};
    GLfloat mat_shininess[]={80.0f};
	glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,mat_diffuse);
    glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);
    glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);
	
	glClearColor(0.0,0.0,0.0,0.0);
    glShadeModel(GL_SMOOTH);
	
    glPolygonMode(GL_FRONT,GL_FILL);
	glColor3f(0.0f,0.4f,1.0f);
	
	for(int i=0;i<m_triangles.size();i++)
	{
		double dNormal[3];
		dNormal[0] = m_triangles[i].Normal[0];
		dNormal[1] = m_triangles[i].Normal[1];
		dNormal[2] = m_triangles[i].Normal[2];
		
		glBegin(GL_POLYGON);
		glNormal3dv(dNormal);
		glVertex3f(m_triangles[i].ptr[0].x, m_triangles[i].ptr[0].y, m_triangles[i].ptr[0].z);
		glVertex3f(m_triangles[i].ptr[1].x, m_triangles[i].ptr[1].y, m_triangles[i].ptr[1].z);
		glVertex3f(m_triangles[i].ptr[2].x, m_triangles[i].ptr[2].y, m_triangles[i].ptr[2].z);
		glEnd();
		glFlush();
	}
	
	glPopMatrix();
	
}










void CTin3DView::OnGetVertex() 
{
	IsOpen=1;
	// TODO: Add your command handler code here
	FILE  *mm_vertexFile;
	CFileDialog location(true);
	location.DoModal();
	mm_vertexFile=fopen(location.GetPathName(),"r");
	
	for (int i=0;i<MAX;i++) 
	{
		
		float a,b,c;
		a=b=c=0.0;
		m_vertex[i].x=0.0;
		fscanf(mm_vertexFile,"%f%f%f",&a ,&b,&c);
		(m_vertex[i].x)=(a-87450)*1.5;
		//		(m_vertex[i].x)=(a-87500)*1.5 ;
		(m_vertex[i].y)=(b-12700)*1.5;
		//		(m_vertex[i].y)=(b-12800);
		(m_vertex[i].z)=c*1.5;
		
	}
	fclose(mm_vertexFile);
	
}

void CTin3DView::BuildTIN()
{
	
	if (MAX > 2)
	{
		for(int i=0;i<MAX-1;i++)          //確定基線
		{
			//			glBegin(GL_LINE_LOOP);
			//		glVertex3f(m_vertex[i].x,m_vertex[i].y,m_vertex[i].z);
			//		glEnd();
			for(int j=i+1;j<MAX;j++)
			{
				if(m_vertex[i].x>m_vertex[j].x)
				{
					Vertex temp;
					temp.x=m_vertex[i].x;
					temp.y=m_vertex[i].y;
					temp.z=m_vertex[i].z;
					
					
					
					m_vertex[i].x=m_vertex[j].x;
					m_vertex[i].y=m_vertex[j].y;
					m_vertex[i].z=m_vertex[j].z;
					
					
					
					m_vertex[j].x=temp.x;
					m_vertex[j].y=temp.y;
					m_vertex[j].z=temp.z;
					
					
					
					
				}
			}
		}
		
		if(m_vertex[0].y>m_vertex[1].y)                //沿基線固定方向
			this->TriDelaunay(m_vertex[0],m_vertex[1]);//調用邊擴展算法構網delaunay
		else
			this->TriDelaunay(m_vertex[1],m_vertex[0]);//調用邊擴展算法構網delaunay
	}
	
	
	
	
}

//DEL void CALLBACK CTin3DView::Rotate(GLvoid)
//DEL {
//DEL 			glRotatef(30,1,0,0);;
//DEL 
//DEL }




void CTin3DView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	IsOpen++;
	// 	glClear(GL_COLOR_BUFFER_BIT);
	int n=IsOpen%6;
	switch(n)
	{
	case 0:
		{ 
			glLoadIdentity();
			glRotatef(30,1,0,0);
			break;
		}
	case 1:
		{
			glLoadIdentity();
			glRotatef(30,1,0,0);
			break;
		}
		
		
	case 2:
		{
			glLoadIdentity();
			glRotatef(45,0,0,1);
			break;
		}
	case 3:
		glLoadIdentity();
		glRotatef(-45,0,0,1);
	}
	
	CView::OnLButtonDown(nFlags, point);
}

void CTin3DView::OnTx() 
{
	n=1;
	// TODO: Add your command handler code here
	
	CChooseTexture d2;
	d2.DoModal();
	CFileDialog mOpen(true);
	if (mOpen.DoModal()==IDOK)
	{
		AUX_RGBImageRec *Image=auxDIBImageLoad(mOpen.GetPathName());
		glTexImage2D(GL_TEXTURE_2D, 0, 3, Image->sizeX,Image->sizeY, 
			0, GL_RGB, GL_UNSIGNED_BYTE,Image->data);
		
	}
}

void CTin3DView::OnPoint() 
{
	// TODO: Add your command handler code here
	Invalidate(true);
	CDiaBegin d1;
	CChooseTexture d2;
	BeginWaitCursor();
	if (d1.DoModal()==1)
	{
		
		FILE  *mm_vertexFile;
		CFileDialog location(true);
		location.DoModal();
		mm_vertexFile=fopen(location.GetPathName(),"r");
		
		for (int i=0;i<MAX;i++) 
		{
			
			float a,b,c;
			a=b=c=0.0;
			m_vertex[i].x=0.0;
			fscanf(mm_vertexFile,"%f%f%f",&a ,&b,&c);
			(m_vertex[i].x)=(a-87450)*1.5;
			//		(m_vertex[i].x)=(a-87500)*1.5 ;
			(m_vertex[i].y)=(b-12700)*1.5;
			//		(m_vertex[i].y)=(b-12800);
			(m_vertex[i].z)=c*1.5;
			
		}
		fclose(mm_vertexFile);
		glClear(GL_COLOR_BUFFER_BIT);
		glClearColor(0.0,0.0,0.0,1.0);
		//	glTranslatef(0,0,-2);
		glShadeModel(GL_SMOOTH );
		glTranslatef( 0, 0,-500);
		glPointSize(2);	
		glColor4f(0,0.4,1,1);
		BuildTIN();	
		
		
		
	}
	EndWaitCursor();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费观看高清完整版在线 | 中文字幕av一区 二区| 蜜桃av噜噜一区二区三区小说| 欧美男生操女生| 免费高清在线视频一区·| 欧美一级一区二区| 国产精品一级二级三级| 国产精品成人免费精品自在线观看 | 毛片一区二区三区| 久久人人爽爽爽人久久久| 国产一区二区三区在线观看免费| 国产亚洲婷婷免费| 97精品电影院| 亚洲成人黄色小说| 精品国产欧美一区二区| 成人激情免费网站| 亚洲成在人线在线播放| 精品久久久久一区| 一本久道久久综合中文字幕| 日韩国产在线一| 欧美国产亚洲另类动漫| 欧美日韩一区二区电影| 国产精品主播直播| 亚洲欧美日韩在线不卡| 日韩欧美的一区二区| 成人教育av在线| 日韩高清不卡一区二区| 亚洲丝袜美腿综合| 欧美精品一区二区蜜臀亚洲| 日本伦理一区二区| 东方欧美亚洲色图在线| 午夜欧美在线一二页| 国产精品剧情在线亚洲| 日韩欧美自拍偷拍| 色综合久久久久网| 国产精品一区二区三区99 | 午夜精品久久久久久不卡8050| 欧美精品一区二区三区蜜桃| 91片在线免费观看| 国产成人在线观看| 日韩二区在线观看| 一区二区三区精品| 国产清纯白嫩初高生在线观看91| 51精品视频一区二区三区| 91视频国产资源| 国产成人综合亚洲91猫咪| 日本欧美一区二区| 一区二区三区免费| 国产精品久久久久影院老司 | 国产一区二区美女| 爽好多水快深点欧美视频| 亚洲手机成人高清视频| 国产亚洲精品aa| 欧美xingq一区二区| 欧美日韩国产综合草草| 91在线视频播放| av一区二区三区在线| 高潮精品一区videoshd| 国产一区二区成人久久免费影院| 日韩中文字幕区一区有砖一区 | 久久色中文字幕| 日韩一二三四区| 欧美精品一卡二卡| 欧美日本不卡视频| 欧美人与性动xxxx| 欧美日韩情趣电影| 欧美日韩国产综合一区二区三区| 91福利国产精品| 91国偷自产一区二区三区成为亚洲经典| 国产suv一区二区三区88区| 国产成人日日夜夜| 国产成人精品一区二区三区四区 | 成人a级免费电影| 国产高清视频一区| 国产成人丝袜美腿| 北条麻妃一区二区三区| 波多野结衣一区二区三区| 高清日韩电视剧大全免费| 极品美女销魂一区二区三区| 久久爱www久久做| 国产精品一区二区x88av| 国产福利一区二区三区在线视频| 国产精品一区免费视频| 国产成人免费视频一区| 99精品国产一区二区三区不卡| 91丨九色丨尤物| 欧美日韩在线不卡| 日韩免费视频一区二区| 国产校园另类小说区| 日本一区二区三区四区在线视频| 国产蜜臀av在线一区二区三区| 国产精品白丝在线| 偷拍一区二区三区四区| 毛片av一区二区| 成人午夜在线播放| 欧美性xxxxxxxx| 欧美一级片免费看| 久久久久高清精品| 伊人婷婷欧美激情| 日日夜夜精品视频天天综合网| 精品一区二区三区的国产在线播放| 国产大陆亚洲精品国产| 色成年激情久久综合| 日韩一区二区在线观看| 国产日韩综合av| 亚洲高清视频的网址| 国产一区二区久久| 欧美影视一区在线| 久久综合色婷婷| 一区二区三区日韩| 韩国女主播一区二区三区| av电影一区二区| 欧美一区二区三区成人| 国产精品久久午夜| 婷婷开心久久网| 成人免费高清在线观看| 欧美人动与zoxxxx乱| 中文字幕免费一区| 免费欧美在线视频| 91亚洲国产成人精品一区二区三| 7777精品伊人久久久大香线蕉超级流畅 | 欧美色视频在线观看| 亚洲精品一区二区三区99| 18欧美乱大交hd1984| 麻豆国产精品视频| 在线一区二区三区| 国产午夜一区二区三区| 日韩精品91亚洲二区在线观看| 成人免费福利片| 欧美tickling网站挠脚心| 亚洲精品视频免费观看| 国产剧情一区二区三区| 欧美一级淫片007| 亚洲国产欧美另类丝袜| 成人一级视频在线观看| 欧美精品一区二区三区高清aⅴ| 亚洲夂夂婷婷色拍ww47| 97久久精品人人澡人人爽| 精品嫩草影院久久| 日韩精品福利网| 欧美性感一区二区三区| 亚洲你懂的在线视频| 高潮精品一区videoshd| 久久久久综合网| 久久国产精品区| 欧美一区在线视频| 亚洲成人免费在线| 欧美色图免费看| 夜夜精品视频一区二区| 91同城在线观看| 成人免费在线视频观看| 懂色av中文一区二区三区| 国产午夜精品一区二区| 激情综合色综合久久| 日韩久久久久久| 韩国精品一区二区| 欧美大胆一级视频| 久久精品国产在热久久| 日韩一区二区精品| 蜜臀99久久精品久久久久久软件| 欧美少妇一区二区| 无码av免费一区二区三区试看| 欧美私人免费视频| 五月婷婷久久丁香| 欧美老肥妇做.爰bbww视频| 亚洲电影一区二区三区| 欧美日韩国产一区二区三区地区| 亚洲福利视频一区二区| 欧美日韩一区二区欧美激情| 亚洲午夜一区二区| 91精品国产麻豆国产自产在线| 三级一区在线视频先锋 | 久久人人97超碰com| 国产精品原创巨作av| 欧美极品xxx| 91香蕉视频污在线| 午夜精品爽啪视频| 欧美一区二区三区四区视频 | 一区二区三区四区高清精品免费观看 | 欧美电视剧免费全集观看| 极品少妇一区二区三区精品视频 | 欧美区视频在线观看| 午夜精品一区在线观看| 日韩一级成人av| 国产成人午夜电影网| 国产精品萝li| 在线免费视频一区二区| 日本不卡在线视频| 久久精品免费在线观看| 91麻豆国产香蕉久久精品| 三级亚洲高清视频| 国产欧美日韩精品一区| 日本伦理一区二区| 久久国产三级精品| 国产精品麻豆99久久久久久| 欧美午夜精品久久久| 久久 天天综合| 中文字幕永久在线不卡| 欧美手机在线视频| 国产精品自在欧美一区|