资源描述:
《贝塞尔曲线.B样条曲线.cadcam实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、CAD实验报告学院:机电工程学院班级:机制10-01姓名:范同梁学号:9CAD实验报告学院:机电工程学院班级:机制10-01姓名:范同梁学号:9年月日目录一、实验一二维图形复合变换编程二、实验二三次B样条曲线生成南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验一二维图形复合变换编程一、实验目的:1.掌握CAD二维图形处理的原理和方法。2.理解CAD对二维图形进行复合变换的过程。二、实验要求在二维模式下,将三角形绕任意点旋转θ角。三角形三点的坐标、旋转点坐标和旋转角度可由用户任意输入。原图形和变换后的图形必须同时显示在显
2、示器上。三、实验设备1.计算机系统2.安装TurboC或其他C语言集成开发工具四、实验原理1、变换原理基本旋转矩阵是相对坐标原点的,为了满足这一要求,必须先将旋转点和需要处理的图形向原点平移,使旋转点与原点重合,然后对图形进行旋转变换。旋转变换后,再将旋转点和旋转后的图形平移到旋转点。基本变换矩阵如下:cosθsinθ0-sinθcosθ0001100010lm1平移T=旋转T=根据上述图形变换原理,对二维图形绕任意点(旋转点)旋转的复合变换矩阵M为100010-x-y1M=cosθsinθ0-sinθcosθ0001100010xy12、编程基本要领1)、将显卡设置为
3、图形模式函数为#include(graphics.h)#include(conio.h)main(){intdriver,mode;driver=VGA;mode=VGAMED;initgraph(&driver,&mode,””);}2)画直线函数为line(x1,y1,x2,y2)3)4*4界矩阵相乘函数floatpy[4][4],xz[4][4];m[4][4]floatxc(a,b)floata[4][4],b[4][4];{inti,j,k;for(i=0;i<=3;i++)for(j=0;j<=3;j++)for(k=0;k<=3;k++)m[i][j]=m
4、[i][j]+a[i][k]*b[k][j];}五、实验步骤1、在C语言集成开发工具的编辑器中输入源程序2、利用编译器编译源程序3、连接生成执行文件4、运行程序六、实验数据及处理结果#include#include#include#include#include#include#include#include#include#definePI3.floatAX,AY,BX,BY,CX,CY;floatX1,
5、Y1,X2,Y2,X3,Y3;floatx,y,a;voidgetin(){printf("inputpointaxanday:");scanf("%f%f",&AX,&AY);printf("inputpointbxandby:");scanf("%f%f",&BX,&BY);printf("inputpointcxandcy:");scanf("%f%f",&CX,&CY);printf("inputthexuanzhuanpointandthejiaodu");scanf("%f%f%f",&x,&y,&a);}voidputout(floata,
6、floatb,floatc,floatd,floate,floatf){intdriver,mode;driver=VGA;mode=VGAMED;registerbgidriver(EGAVGA_driver);initgraph(&driver,&mode,"c:tc");setcolor(BLUE);line(AX,AY,BX,BY);line(BX,BY,CX,CY);line(CX,CY,AX,AY);setcolor(RED);line(a,b,c,d);line(c,d,e,f);line(e,f,a,b);}voidchang(){floatT1[3]
7、[3]={{1,0,0},{0,1,0},{0,0,1}};floatT3[3][3]={{1,0,0},{0,1,0},{0,0,1}};floatT2[3][3]={{1,0,0},{0,1,0},{0,0,1}};floatT[3][3]={{0,0,0},{0,0,0},{0,0,0}},TT[3][3]={{0,0,0},{0,0,0},{0,0,0}};floatNEW1[3][3]={{0,0,0},{0,0,0},{0,0,0}},NEW[3][3];inti,j,k,ii,jj,kk;inti1,j1,k1;/*a=-a