1 / 17
文档名称:

贝塞尔曲线.B样条曲线.cadcam实验报告.doc

格式:doc   页数:17
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

贝塞尔曲线.B样条曲线.cadcam实验报告.doc

上传人:1006108867 2014/1/15 文件大小:0 KB

下载得到文件列表

贝塞尔曲线.B样条曲线.cadcam实验报告.doc

文档介绍

文档介绍:C
A
D




学院:机电工程学院
班级:机制10-01
姓名:范同梁
学号:541002010109

年月日
目录
实验一二维图形复合变换编程
实验二三次B样条曲线生成
南昌大学实验报告
学生姓名: 学号: 专业班级:
实验类型:□验证□综合□设计□创新实验日期: 实验成绩:
实验一二维图形复合变换编程
一、实验目的:
掌握CAD二维图形处理的原理和方法。
理解CAD对二维图形进行复合变换的过程。
二、实验要求
在二维模式下,将三角形绕任意点旋转θ角。三角形三点的坐标、旋转点坐标和旋转角度可由用户任意输入。原图形和变换后的图形必须同时显示在显示器上。
三、实验设备
计算机系统
安装Turbo C或其他C语言集成开发工具
四、实验原理
1、变换原理
基本旋转矩阵是相对坐标原点的,为了满足这一要求,必须先将旋转点和需要处理的图形向原点平移,使旋转点与原点重合,然后对图形进行旋转变换。旋转变换后,再将旋转点和旋转后的图形平移到旋转点。基本变换矩阵如下:
cosθ sinθ 0
-sinθ cosθ 0
0 0 1
1 0 0
0 1 0
l m 1
平移T=
旋转T=
根据上述图形变换原理,对二维图形绕任意点(旋转点)旋转的复合变换矩阵M为
1 0 0
0 1 0
-x -y 1
M=
cosθ sinθ 0
-sinθ cosθ 0
0 0 1
1 0 0
0 1 0
x y 1
2、编程基本要领
1)、将显卡设置为图形模式函数为
#include()
#include()
main( )
{ int driver,mode;
driver=VGA; mode=VGAMED;
initgraph(&driver,& mode,””);
}
2) 画直线函数为 line(x1,y1, x2,y2)
3) 4*4界矩阵相乘函数
float py[4][4],xz[4][4];m[4][4]
float xc(a,b)
float a[4][4],b[4][4];
{ int i , j,k;
for(i=0;i<=3;i++)
for (j=0;j<=3;j++)
for(k=0;k<=3;k++)
m[i][j]= m[i][j]+ a[i][k]* b[k][j];
}
五、实验步骤
1、在C语言集成开发工具的编辑器中输入源程序
2、利用编译器编译源程序
3、连接生成执行文件
4、运行程序
六、实验数据及处理结果
#include <>
#include <>
#include <>
#include <>
#include <>
#include<>
#include<>
#include<>
#include<>
#define PI
float AX,AY,BX,BY,CX,CY;
float X1,Y1,X2,Y2,X3,Y3;
float x,y,a;
void getin()
{printf("input point ax and ay:\n");
scanf("%f %f",&AX,&AY);
printf("input point bx and by:\n");
scanf("%f %f",&BX,&BY);
printf("input point cx and cy:\n");
scanf("%f %f",&CX,&CY);
printf("input the xuanzhuan point and the jiaodu\n");
scanf("%f %f %f",&x,&y,&a);
}
void putout(float a,float b ,float c,float d,float e,float f)
{int driver,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)