您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > 计算机辅助设计实验指导书
新疆农业大学机械交通学院实验指导书课程名称:机械CAD/CAM编写教师:刘小勇编写时间:2006年2月1目录一、实验目的和要求………………………………………………….1二、实验一、图形的显示…………………………………………….3三、实验二、平移变换和比例变换……………………..………….4四、实验三、旋转变换……………………………………………….5五、实验四、错切变换和对称变换………….………………………6附录C语言图形函数及使用说明…………………………………….7参考文献…………………………………………………………………92实验的目的和要求目的:本次上机实验共4个实验(8个学时)。通过上机实验加深对课程内容、尤其是对图形变换原理和图形软件开发过程的理解,增加感性认识,软件设计、编写及调试的能力。要求:1.用C语言编写图1(螺栓)的二维几何图形变换程序,上机调试通过,正确运行。编程要求(1)友好的人机交互操作;(2)各变换连续控制(每次变换无须退出);(3)先编好程序再上机调试运行。2.提交实验报告实验报告的内容为:⑴设计内容本次实验的试验内容(参照实验指导书)。⑵设计原理本次实验的实验原理(变换原理)。⑶设计框图程序设计流程图。⑷程序设计说明文档主要参变量、主要结构、主要语句(算法)的说明。⑸实验总结图1本次实验的个人体会、收获、不足等。⑹源程序调试通过的C语言程序源代码。3.成绩评定百分制。成绩=运行演示(60%)+实验报告(40%)3实验一、图形的显示1.实验内容实现图形的正常显示(以正常形状比例、大小、居中显示图形)。2.实验原理y坐标的变换计算机屏幕的坐标系原点在左上角(如图2示),一般的取值范围:x(0~1023/799);y(0~767/599)。图形正常显示应以左下角为坐标原点,因此图形的y坐标需转换:y’(程序中实际使用)=y方向的最大取值范围-y(图形坐标)。图形的居中显示确定图形中点坐标(xz,yz);确定屏幕中点坐标(xp,yp),使(xz,yz)与(xp,yp)重合(实际是平移变换)。图形显示时的正常比例图形各部分比例适当取决于图形坐标的取值正确;图形相对屏幕大小的比例,可用相对于图形中心点的比例变换完成(见)。图形的生成定义两个数组,一个顺序存放图形的各个原始坐标点;另一个顺序存放图形变换以后的各个坐标点,程序中用画线指令(line、linerel、lineto等)按存入顺序取出变换后的坐标点画图。(先变换、后画图)3.实验要求该项内容是后面实验的基础,要求显示准确y(0,0)x计算机屏幕4实验二、平移变换和比例变换一、平移变换1.实验内容实现图形的平移变换。2.实验原理平移变换公式:[x’y’1]=[xy1]·T=[x+Ly+m1]所以:x′=x+L;y′=y+m其中:T-平移变换矩阵;(x′,y′)-变换后的新坐标;(x,y)-原坐标;L、m-分别为x方向和y方向的平移量。3.实验要求应能实现图形的任意位置的平移,两种控制方式:⑴交互输入移动距离(坐标),完成移动;⑵用方向键控制移动。后者最好。二、比例变换1.实验内容实现图形的比例变换(组合变换)。2.实验原理比例变换(组合变换)公式:[x’y’1]=[xy1]·T其中:T(组合变换矩阵)=T1(平移变换矩阵)*T2(基本比例变换矩阵)*T3(平移变换矩阵)请同学自行求出最终的解析式:x’=?;y’=?。比例因子s:s1是放大;0s1是缩小。3、实验要求⑴确定图形的中心(随当前图形在屏幕的位置不同);⑵相对图形中心的比例变换;⑶图形放大、缩小功能;⑷等比变换。5实验三、旋转变换1.实验内容实现图形的旋转变换(组合变换)。2.实验原理旋转变换(组合变换)公式:[x’y’1]=[xy1]·T其中:T(组合变换矩阵)=T1(平移变换矩阵)*T2(基本旋转变换矩阵)*T3(平移变换矩阵)请同学自行求出最终的解析式:x’=?;y’=?。注意:转角规定逆时针为正,顺时针为负。3、实验要求⑴交互输入旋转中心坐标和旋转角度值;⑵相对图形旋转中心的旋转变换;⑶旋转中心是任意的;⑷可以逆时针、顺时针旋转;⑸可以任意角度旋转。6实验四、错切变换和对称变换一、错切变换1.实验内容分别实现图形沿x、y方向错切变换。2.实验原理变换公式:[x’y’1]=[xy1]·T沿x方向错切变换:T=c0,错切因子;沿y方向错切变换:T=b0,错切因子。请同学自行求出最终的解析式:x’=?;y’=?。3、实验要求交互输入错切因子,可分别实现图形两个方向的错切变换。二、对称变换1.实验内容分别实现图形相对并行和垂直x坐标轴的任意直线的对称变换(组合变换)。2.实验原理变换公式:[x’y’1]=[xy1]·T其中:T(组合变换矩阵)=T1(平移变换矩阵)*T2(基本对称变换矩阵)*T3(平移变换矩阵)请同学自行求出最终的解析式:x’=?;y’=?。3、实验要求⑴交互输入平行或垂直x轴直线的位置坐标;⑵相对直线的对称变换;⑶参照直线是任意的。7附录C语言图形函数及使用说明1、图形系统初始化TURBOC的所有文件均在graphics.h文件中,因此,在使用图形系统时,程序一定有“#includegraphics.h”,同时要将“EGAVGA.BGI”文件放在程序的同一目录下。1)图形初始化函数:voidfarinitgraph(int*gd,int*gm,char*path);gd:指定图形驱动程序;gm:图形模式;path:指明图形驱动程序(EGAVGA.BGI)所在目录。2)关闭图形系统函数:voidclosegraph();例:#include“graphics.h”main(){intgd,gm;gm=DETECT;initgraph(&gm,&gd,“”);setbkcolor(1);/*设置背景为蓝色*/setcolor(14);/*设置前景为黄色*/clearviewport();/*屏幕显示为蓝色*/bar3D(10,20,50,180,0,0);/*作实心方块图*/getch();closegraph();}2、图形状态控制函数1)detectgraph();图形适配器硬件测试。格式:coidfardetectgraph(intfar*deriver,intfarmode);2)getmaxx():返回当前图形模式下屏幕的最大x值。用法:max_x=getmaxx();3)getmaxy():返回当前图形模式下屏幕的最大y值。用法:max_y=getmaxy();例:………printf(“x坐标最大值:%d,y坐标最大值:%d”,getmaxx(),getmaxy());………4)setbkcolor(intcolor):设置当前背景颜色(在清屏后起作用)。用法:setbkcolor(intcolor);color-颜色值,整型,意义如下:0-黑色;1-兰;2-绿;3-青;4-红;5-洋红;6-棕;7-浅灰;8-深灰;9-淡蓝;10-淡绿;11-淡青;12-淡红;13-粉红;14-金黄;15-白。5)setcolor(intcolor):设置当前绘图颜色。用法:setcolor(intcolor);color-颜色值,整型,意义如上。86)getbkcolor():返回当前背景色。用法:intfargetbkcolor();7)getcolor():返回当前绘图色。用法:intfargetcolor();3、画图函数1)putpixel(intx,inty,intcolor):在(x,y)点处画一个点,颜色是“color”。2)getpixel(intx,inty):返回(x,y)点的颜色值,整型。3)moveto(intx,inty):将当前画笔移至(x,y)处。4)moverel(intdx,intdy):将当前画笔在X、Y方向分别移动dx、dy距离。5)line(intx1,inty1,intx2,inty2):用当前颜色、当前线性在两点(X1,Y1)(X2,Y2)之间画一条直线。6)linerel(intdx,intdy):从当前画笔到距当前画笔dx、dy距离的点之间,画一条直线。7)lineto(intx,inty):从当前画笔处到(x,y)点之间画一条直线。8)arc(intx,inty,intstangle,intendangle,intredius):以(x,y)为圆心,redius为半径,stangle为起始角,endangle为终止角(以度为单位,逆时针为正),画一圆弧。9)circle(intx,inty,intredius):以(x,y)为圆心,redius为半径画一园。10)ellipse(intx,inty,intstangle,intendangle,intxredius,intyradius):画一椭圆。其中:(x,y)为椭圆中心;stangle为起始角;endangle为终止角;xredius、yredius为长短轴半径。11)bar(intleft,inttop,intright,intbittom):画一填充长方条形。(left,top)为矩形左上角坐标;(right,bottom)为右下角坐标。12)bar3d(intleft,inttop,intright,intbottom,intdepth,inttopflag):画一个立体填充矩形。left,top)为矩形左上角坐标;(right,bottom)为右下角坐标。Depth表示立体感的深度;topflag决定是否给立体矩形加顶,topflag=0不加顶;否则,加顶。13)rectangle(intleft,inttop,intright,intbottom):画一矩形(不填充)。(left,top)为矩形左上角坐标;(right,bottom)为右下角坐标。14)setlinestyle(intlinestyle,unsignedupattern,intthickness):设置当前画线宽度和线型。Linestyle定义线型,意义如下:0-实线;1-点线;2-中心线;3-破折线;thickness定义线宽,意义如下:1-正常(一个象素宽);3-三个象素宽;upattern与用户定义线型有关,一般等于0。15)setfillstyle(intpattern,intcolor):设置填充模式和颜色。Pattern定义填充模式:0-背景色;1-实填充;2-“-”线填充;3-“///”线填充;4-“///”粗线填充;5-“\\\”粗线填充;6-“\\\”线填充;7-网线填充;8-交叉线填充;9-间隔线填充。Color定义填充颜色。4、屏幕窗口处理1)cleardevice():清除图形屏幕。2)clearviewport():清除当前图形窗口。9参考文献1谭浩强等.C语言程序设计.北京:清华大学出版社,20002姚英学,蔡颖等.计算机辅助设计与制造.北京:高等教育出版社,20023童秉枢等.机械CAD技术基础.北京:清华大学出版社,19964袁泽虎.计算机辅助设计与制造.北京:中国水利水电出版社,20025葛友华.CAD/CAM技术.北京:机械工业出版社,20006唐荣锡.CAD/CAM技术.北京:北京航空航天大学出版社,19947范玉青等.CAD软件设计.北京:北京航空航天大学出版社,19968蔡颖.CAD/CAM原理与应用.北京:机械工业出版社,1998
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:计算机辅助设计实验指导书
链接地址:https://www.777doc.com/doc-2061307 .html