资源描述:
《图形学 三视图、正轴测投影 c#代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验5三维图形生成v三视图、正轴测投影实验目的:掌握第5章所讲述的三维图形的变换和生成。v实验内容:E5绘制所示图形的Form1.csusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceE5{//!!说明:主视图有两点连线不对,应该是坐标连线的问题,但连线太多所
2、以没找到是哪两点连错。publicpartialclassForm1:Form{intx0=150;intz0=-150;doublec=Math.Cos(Math.PI/2);doubles=Math.Sin(Math.PI/2);doublec1=Math.Cos(Math.PI/4);doubles1=Math.Sin(Math.PI/4);Matrix[]p3d=newMatrix[20];//三维顶点Matrix[]p3dv=newMatrix[20];//主视图顶点Matrix[]p3dw=newMatrix[2
3、0];//侧视图顶点Matrix[]p3dh=newMatrix[20];//俯视图顶点Matrix[]p3dc=newMatrix[20];//正轴侧顶点/*double[,]p=newdouble[17,4]{{0,0,42,1},{55,0,42,1},{55,0,10,1},{70,0,10,1},{70,0,0,1},{70,40,0,1},{0,40,0,1},{0,40,27,1},{0,30,27,1},{0,30,42,1},{10,30,42,1},{10,10,42,1},{55,10,42,1},{5
4、5,10,10,1},{30,10,10,1},{30,40,10,1},{20,40,27,1},{20,30,27,1},{70,40,10,1}};*/voidGetp3d(refMatrix[]p3d)//三维顶点赋值{for(inti=0;i<19;i++){p3d[i]=newMatrix(1,4);//三维顶点}p3d[0].Data=newdouble[1,4]{{0,0,42,1}};p3d[1].Data=newdouble[1,4]{{55,0,42,1}};p3d[2].Data=newdouble[
5、1,4]{{55,0,10,1}};p3d[3].Data=newdouble[1,4]{{70,0,10,1}};p3d[4].Data=newdouble[1,4]{{70,0,0,1}};p3d[5].Data=newdouble[1,4]{{70,40,0,1}};p3d[6].Data=newdouble[1,4]{{0,40,0,1}};p3d[7].Data=newdouble[1,4]{{0,40,27,1}};p3d[8].Data=newdouble[1,4]{{0,30,27,1}};p3d[9].Da
6、ta=newdouble[1,4]{{0,30,42,1}};p3d[10].Data=newdouble[1,4]{{10,30,42,1}};p3d[11].Data=newdouble[1,4]{{10,10,42,1}};p3d[12].Data=newdouble[1,4]{{55,10,42,1}};p3d[13].Data=newdouble[1,4]{{55,10,10,1}};p3d[14].Data=newdouble[1,4]{{30,10,10,1}};p3d[15].Data=newdouble[1
7、,4]{{30,40,10,1}};p3d[16].Data=newdouble[1,4]{{20,40,27,1}};p3d[17].Data=newdouble[1,4]{{20,30,27,1}};p3d[18].Data=newdouble[1,4]{{70,40,10,1}};}publicForm1(){InitializeComponent();}privatevoidForm1_Paint(objectsender,PaintEventArgse){Getp3d(refp3d);//主视图矩阵MatrixTv
8、=newMatrix(4);Tv.Data=newdouble[4,4]{{1,0,0,0},{0,0,0,0},{0,0,1,0},{0,0,0,1}};//侧视图MatrixTw1=newMatrix(4);Tw1.Data=newdouble[4,4]{{0,0,0,0},{0,1,