计算机辅助设计实验指导书

时间:2024.4.20

 实验指导书

课 程 名 称:                  

编 写 教 师:              

编 写 时 间:               

 

目      录

一、  实验目的和要求………………………………………………….1    

二、  实验一、图形的显示…………………………………………….3

三、  实验二、平移变换和比例变换……………………..………….4

四、  实验三、旋转变换……………………………………………….5

五、  实验四、错切变换和对称变换………….………………………6

附录  C语言图形函数及使用说明…………………………………….7

参考文献…………………………………………………………………9

实验的目的和要求

目的:本次上机实验共4个实验(8个学时)。通过上机实验加深对课程内容、尤其是对图形变换原理和图形软件开发过程的理解,增加感性认识,软件设计、编写及调试的能力。

要求:

1.用C语言编写图1(螺栓)的二维几何图形变换程序,上机调试通过,正确运行。编程要求(1)友好的人机交互操作;(2)各变换连续控制(每次变换无须退出);(3) 先编好程序再上机调试运行。

 

2.提交实验报告

实验报告的内容为:

⑴ 设计内容

本次实验的试验内容(参照实验指导书)。

⑵ 设计原理

本次实验的实验原理(变换原理)。

⑶ 设计框图

程序设计流程图。

⑷ 程序设计说明文档

主要参变量、主要结构、主要语句(算法)

的说明。

⑸ 实验总结                                     图1

本次实验的个人体会、收获、不足等。

⑹ 源程序

调试通过的C语言程序源代码。

3.成绩评定

百分制。成绩=运行演示(60%)+实验报告(40%)

实验一、图形的显示

   1.实验内容

实现图形的正常显示(以正常形状比例、大小、居中显示图形)。

2.实验原理

l  y坐标的变换

计算机屏幕的坐标系原点在左上角(如图2示),一般的

取值范围:x(0~1023/799);

y(0~767/599)。

图形正常显示应以左下角为坐标原点,因此

图形的y坐标需转换:

y’(程序中实际使用)

=y方向的最大取值范围-y(图形坐标)。

l  图形的居中显示

确定图形中点坐标(xz,yz);确定屏幕中点坐标(xp,yp),   使

(xz,yz)与(xp,yp)重合(实际是平移变换)。

l  图形显示时的正常比例

图形各部分比例适当取决于图形坐标的取值正确;图形相对屏幕大小的比例,可用相对于图形中心点的比例变换完成(见)。

l  图形的生成

定义两个数组,一个顺序存放图形的各个原始坐标点;另一个顺序存放图形变换以后的各个坐标点,程序中用画线指令(line、linerel、lineto等)按存入顺序取出变换后的坐标点画图。(先变换、后画图)

3.实验要求

该项内容是后面实验的基础,要求显示准确

实验二、平移变换和比例变换

一、平移变换

1.实验内容

    实现图形的平移变换。

2.实验原理

    平移变换公式:[x’ y’ 1]= [x y 1]·T=[x+L y+m 1]

    所以:   x′=x + L; y′=y + m

    其中:T-平移变换矩阵;(x′,y′)-变换后的新坐标;

        (x,y)-原坐标;L、m-分别为x方向和y方向的平移量。

3.实验要求

    应能实现图形的任意位置的平移,两种控制方式:⑴ 交互输入移动距离(坐标),完成移动;⑵ 用方向键控制移动。后者最好。

  

二、比例变换

1.实验内容

    实现图形的比例变换(组合变换)。

2.实验原理

    比例变换(组合变换)公式:[x’ y’ 1]= [x y 1]·T

    其中:T(组合变换矩阵)=T1 (平移变换矩阵)* T2(基本比例变换矩阵)* T3(平移变换矩阵)

    请同学自行求出最终的解析式:x’=?;y’=?。

    比例因子s:s>1是放大;0<s<1是缩小。

3、实验要求

     ⑴ 确定图形的中心(随当前图形在屏幕的位置不同);⑵ 相对图形中心的比例变换;⑶ 图形放大、缩小功能;⑷ 等比变换。

  

实验三、旋转变换

1.实验内容

 实现图形的旋转变换(组合变换)。

2.实验原理

    旋转变换(组合变换)公式:[x’ y’ 1]= [x y 1]·T

    其中:T(组合变换矩阵)=T1 (平移变换矩阵)* T2(基本旋转变换矩阵)* T3(平移变换矩阵)

请同学自行求出最终的解析式:x’=?;y’=?。注意:转角规定逆时针为正,顺时针为负。

3、实验要求

     ⑴ 交互输入旋转中心坐标和旋转角度值;⑵ 相对图形旋转中心的旋转变换;⑶ 旋转中心是任意的;⑷ 可以逆时针、顺时针旋转;⑸ 可以任意角度旋转。

实验四、错切变换和对称变换

一、错切变换

1.实验内容

 分别实现图形沿x、y方向错切变换。

2.实验原理

变换公式:[x’ y’ 1]= [x y 1]·T

 

沿x方向错切变换:T=           c<>0,错切因子;

    

  

    沿y方向错切变换:T=            b<>0,错切因子。

请同学自行求出最终的解析式:x’=?;y’=?。

3、实验要求

    交互输入错切因子,可分别实现图形两个方向的错切变换。

二、对称变换

1.实验内容

 分别实现图形相对并行和垂直x坐标轴的任意直线的对称变换(组合变换)。

2.实验原理

变换公式:[x’ y’ 1]= [x y 1]·T

其中:T(组合变换矩阵)=T1 (平移变换矩阵)* T2(基本对称变换矩阵)* T3(平移变换矩阵)

    请同学自行求出最终的解析式:x’=?;y’=?。

3、实验要求

     ⑴ 交互输入平行或垂直x轴直线的位置坐标;⑵ 相对直线的对称变换;⑶ 参照直线是任意的。

附录  C语言图形函数及使用说明

1、 图形系统初始化

TURBO C的所有文件均在graphics.h文件中,因此,在使用图形系统时,程序一定有

“#include <graphics.h>”,同时要将“EGAVGA.BGI”文件放在程序的同一目录下。

    1)图形初始化函数:

    void far initgraph(int *gd,int *gm,char *path );

    gd:指定图形驱动程序;gm:图形模式;path:指明图形驱动程序(EGAVGA.BGI)所在目录。

    2)关闭图形系统函数:

    void closegraph();

例:

    #include “graphics.h”

    main()

    { int gd, gm;

      gm=DETECT;

      initgraph(&gm, &gd, “”);

      setbkcolor(1);           /*设置背景为蓝色*/

      setcolor(14);            /*设置前景为黄色*/

      clearviewport ( );        /*屏幕显示为蓝色*/

      bar3D(10,20,50,180,0,0);  /*作实心方块图*/

      getch();

      closegraph();

    }

2、 图形状态控制函数

1) detectgraph(); 图形适配器硬件测试。

格式:coid far detectgraph(int far *deriver,int far mode);

2) getmaxx():返回当前图形模式下屏幕的最大x值。

用法:max_x=getmaxx();

3) getmaxy():返回当前图形模式下屏幕的最大y值。

用法:max_y=getmaxy();

    例:

            ………

        printf(“x坐标最大值:%d,y坐标最大值:%d”,getmaxx( ),getmaxy( ));

            ………

4) setbkcolor(int color):设置当前背景颜色(在清屏后起作用)。

用法:setbkcolor( int color);  color-颜色值,整型,意义如下:

0-黑色;1-兰;2-绿;3-青;4-红;5-洋红;6-棕;7-浅灰;8-深灰;

9-淡蓝;10-淡绿;11-淡青;12-淡红;13-粉红;14-金黄;15-白。

5) setcolor( int color):设置当前绘图颜色。

用法:setcolor(int color);color-颜色值,整型,意义如上。

6) getbkcolor( ):返回当前背景色。

用法:int far getbkcolor( );

7) getcolor( ):返回当前绘图色。

用法:int far getcolor( );

3、 画图函数

1) putpixel (int x,int y,int color):在(x,y)点处画一个点,颜色是“color”。

2) getpixel(int x, int y):返回(x,y)点的颜色值,整型。

3) moveto(int x, int y):将当前画笔移至(x,y)处。

4) moverel(int dx, int dy):将当前画笔在X、Y方向分别移动dx、dy距离。

5) line(int x1, int y1, int x2, int y2):用当前颜色、当前线性在两点(X1,Y1)(X2,Y2)之间画一条直线。

6) linerel(int dx, int dy):从当前画笔到距当前画笔dx、dy距离的点之间,画一条直线。

7) lineto(int x, int y):从当前画笔处到(x,y)点之间画一条直线。

8) arc(int x, int y, int stangle, int endangle, int redius):以(x,y)为圆心,redius为半径,stangle为起始角,endangle为终止角(以度为单位,逆时针为正),画一圆弧。

9) circle(int x, int y, int redius):以(x,y)为圆心,redius为半径画一园。

10)      ellipse (int x, int y, int stangle, int endangle, int xredius, int yradius):画一椭圆。

其中:(x,y)为椭圆中心;stangle为起始角;endangle为终止角;xredius、yredius为长短轴半径。

11)      bar (int left, int top, int right, int bittom):画一填充长方条形。(left, top)为矩形左上角坐标;(right, bottom)为右下角坐标。

12)      bar3d (int left, int top, int right, int bottom, int depth, int topflag):画一个立体填充矩形。left, top)为矩形左上角坐标;(right, bottom)为右下角坐标。Depth表示立体感的深度;topflag决定是否给立体矩形加顶,topflag=0不加顶;否则,加顶。

13)      rectangle(int left, int top, int right, int bottom):画一矩形(不填充)。(left, top)为矩形左上角坐标;(right, bottom)为右下角坐标。

14)      setlinestyle (int linestyle, unsigned upattern, int thickness ):设置当前画线宽度和线型。Linestyle 定义线型,意义如下:0-实线;1-点线;2-中心线;3-破折线;thickness 定义线宽,意义如下:1-正常(一个象素宽);3-三个象素宽;

upattern 与用户定义线型有关,一般等于0。

15)      setfillstyle (int pattern, int color):设置填充模式和颜色。

Pattern 定义填充模式:0-背景色;1-实填充;2-“-”线填充;3-“///”线填充;4-“///”粗线填充;5-“\\\”粗线填充;6-“\\\”线填充;7-网线填充;

8-交叉线填充;9-间隔线填充。

Color 定义填充颜色。

4、 屏幕窗口处理

1) cleardevice( ):清除图形屏幕。

2) clearviewport( ):清除当前图形窗口。

参考文献

1 谭浩强等. C语言程序设计.北京:清华大学出版社,2000

2 姚英学,蔡颖等.计算机辅助设计与制造.北京:高等教育出版社,

20##

3 童秉枢等.机械CAD技术基础.北京:清华大学出版社,1996

4 袁泽虎.计算机辅助设计与制造.北京:中国水利水电出版社,2002

5 葛友华.CAD/CAM技术.北京:机械工业出版社,2000

6 唐荣锡.CAD/CAM技术.北京:北京航空航天大学出版社,1994

7 范玉青等.CAD软件设计.北京:北京航空航天大学出版社,1996

8 蔡颖.CAD/CAM原理与应用.北京:机械工业出版社,1998


第二篇:广州大学计算机教学辅助设计实验报告


更多相关推荐:
计算机辅助设计实验报告

控制系统计算机辅助设计综合实验指导实验名称连续与离散系统校正实验系统可控性与可观性实验系统的simulink仿真实验陈茜编实验人王奔学号班级信息工程系1实验任务书1有一个单位负反馈控制系统如果控制对象的传递函数...

计算机辅助设计实验报告

淮阴工学院计算机辅助设计实验报告学院计算机工程学院班级软件1102姓名张超学号1101306230指导教师陈晓兵计算机工程学院目录1绘图基础错误未定义书签2二维绘图43二维图形编辑74三维绘图和实体造型10实验...

计算机辅助设计综合实习报告

计算机辅助设计综合实习报告学院信息科学与工程学院班级电子信息科学与技术082学号3080448201姓名邝辉宁指导老师陈小琴日期20xx918计算机辅助设计综合实习报告一实习的性质与目的1课程性质计算机辅助设计...

计算机辅助设计实验报告

计算机辅助设计实验报告实验序号实验一实验项目名称Creo20工作界面

计算机辅助设计实验报告

编号24计算机辅助设计课程实验报告学院班级姓名学号年月日一三维造型1按照下图给定的尺寸对物体三维造型2以下图为开放题目进行关联设计3选择合适视口显示模型并截取图形放置于三维造型及设计处三维造型及设计二1首先在A...

汽车计算机辅助设计实验报告 (2)

实验报告课程名称系部名称汽车与交通工程学院专业班级车辆103班学生姓名学号指导教师王强王永梅黑龙江工程学院教务处制实验报告实验报告

天津理工计算机辅助设计实验报告

实验报告

广州大学计算机教学辅助设计实验报告

广州大学学生实验报告开课学院及实验室计算机实验楼307A操作220xx年12月1日双击Flashcs55然后出现以根据你所需要的制作出你满意的课件然后单击actionscript30就会出现Flash的工作界面...

广州大学计算机教学辅助设计实验报告

广州大学学生实验报告开课学院及实验室计算机实验楼307A操作220xx年11月2日说明各学院实验中心可根据实验课程的具体需要和要求自行设计和确定实验报告的内容要求和栏目但表头格式按照实验项目名称栏以上部分统一

计算机辅助设计实习报告

计算机辅助设计实习报告学号80811126专业电子信息工程班级电信081姓名渠放1实习项目计算机辅助设计实习是电信工程专业集中实践性环节之一直流稳压电源是电子技术常用的电源设备之一LED是目前使用最广泛的显示器...

CAD计算机辅助设计实习报告

谈AutoCAD对我们在工程制图上的积极影响xxx石家庄铁道大学四方学院河北石家庄050041摘要目前计算机绘图在作图尺寸精确度修改错误方便画几何图形方便等方面可以说已经代替了手工绘图是作为工科生必备的一项技能...

计算机辅助设计实习实习报告

计算机辅助设计实习实习报告球赛计分显示屏姓名何探学号3090731126班级通信091班指导教师肖英邓建志金红一摘要2二前言2三设计要求3四元件种类及功能4五设计原理图6六心得与体会101摘要本次计算机辅助设计...

计算机辅助设计实验报告(17篇)