《《计算机绘》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《计算机绘》PPT课件.ppt(96页珍藏版)》请在三一办公上搜索。
1、计算机绘图(C语言版),课程教材:,计算机绘图理论及应用 电子科技大学出版社 孙淑霞 等计算机绘图实习指导书成都理工大学出版 程 荃 编著课程按排 授课:学时 实习:26学时地点:地球物理实验室,参考教材:,计算机绘图 清华大学出版社 陆润民实用计算机绘图 中国科技 大学出版社 蒋长锦计算机图形学 清华大学出版社 孙家长,课程教材:计算机绘图理论及其应用主要内容包括:第一章 计算机绘图系统的软件和硬件、第二章 二维图形变换、第三章 三维图形变换、第四章 图形窗口与裁剪、第五章 曲线的插值和平滑、第六章 曲线的绘制、第七章 曲面拟合和插值、第八章 图形的数据结构第九章 利用SURFER绘图命令设
2、计绘图程序,第一章 绪 论 1.1引言 1.2 计算机绘图系统 1.3 计算机绘图系统的硬件 1.4 计算机绘图系统的软件 1.5 基本绘图子程序 1.6 全屏幕编辑 1.7 FORTRAN绘图程序的编译、连接、运行,第二章 二维图形变换 2.1 二维图形矩阵表示法和变换矩阵 2.3 二维图形齐次坐标矩阵变换 2.4 组合变换 2.5 二维图形变换绘图程序的设计,第三章 三维图形变换 3.2 三维基本变换 3.2 三维图形组合变换 3.3 投影变换 3.4 透视投影变换 3.5 三维图形变换绘图程序的设计,第四章 图形窗口与裁剪 4.1 图形坐标系统 4.2 二维图形窗口变换 4.3 透视变换
3、 4.4 视向变换 4.5 子程序及其参数说明 4.6 应用实例,第五章 曲线的插值和平滑 5.1 线性插值 5.2 一元三点插值 5.3 双抛物线叠加插值 5.4 三次样条函数插值 5.5 五点三次平滑 5.6 最小二乘曲线拟合,第六章 曲线的绘制 6.1 概述 6.2 规则曲线 6.3 Bezier曲线 6.4 B样条曲线 6.5 三次参数样条曲线 6.6 线性迭代法(抹角法)6.7 张力样条法,第七章 曲面拟合和插值 7.1 近点按距离加权平均法(NP法)7.2 按方位取点加权法 7.3 趋势面拟合法 7.4 趋势面和残差叠加法 7.5 加权最小二乘拟合法(M法)7.7 等值线的绘制,第
4、八章 图形的数据结构 8.1 数据结构的引入 8.2 线性列表结构 8.3 链表结构 8.4 树形结构 8.5 排序及查找,第九章 利用SURFER绘图命令设计绘图程序 9.1 绘图程序设计的引入 9.2 SURFER 绘图命令简介 9.3 SURFER 绘图基本子程序设计 9.4 SURFER 绘图程序设计实例,附录 计算机绘图CAI教学软件附录 C程序汇编附录 C语言SURFER绘图基本子程序参考文献,1.计算机文化时代 文化知识 技术知识 应用知识计算机用途 数据处理 一门新兴学科,随着计算机的发展而发展 管理 计算机图形学 自动控制 文字,图像处理等3.计算机图形学 计算机技术 计算机
5、语言及程序设计 计算机 图形学 数理知识等相关学科知识,第一章 绪 论 1.1 引言,4.计算机语言 机器语言 汇编语言 高级语言 C(T-C B-C A-C)PASIC BASIC FORTRAN 绘图 绘图命令(或函数)针对各类绘图设备 绘图基本子程序如绘图仪,屏幕,打印机等 专用绘图命令,.绘图语言绘图命令因绘图设备的不同,其命令形式有所差异。.绘图基本子程序利用专用设备的绘图命令,所编制的基本绘图子程序。在高级语言编程中,直接调用各绘图功能子程序。完成实现绘图。.计算机绘图过程 屏幕 高级语言 静电绘图仪 图形数据准备利用图形学技术绘图设备 绘图仪建模,数学模型 绘图设计生成图形命令文
6、件 打印机 激光等,绘图仪:hp,sr-6602,Dxy-880,Spl-450等等打印机:Star-3240,1600,1724等等.计算机绘图系统,微机绘图设备硬件:计算机,屏幕,绘图仪,打印机 绘图软件:高级语言绘图软件绘图函数,绘图仪绘图命令,打印机命令绘图功能软件包图形学技术,图形变换,裁剪,消隐,数据结构.绘图例绘三角形 4,6顶点坐标 形体线段组合顺序 1,2 5,0cm,1)直接利用SR-6602绘图命令生成f.plt文件内容(1)f.plt文件内容:INHM 绘图起始定义 注:1.绘图命令定义符必需大写SC笔移动 2.基本单位步:0.1mmAP;100,200,3 3.幅宽:
7、3627cmAP;500,0,2绘图命令AP;400,600,23抬笔AP;100,200,22落笔HMTE 终止绘图命令(2)执行绘图:%type f.plt prn,2)调用屏幕FORTRAN绘图功能子程序(单位像素)(1)f.for程序:call ginit(18)VGA屏幕初始化,文本状态图形状态call viewport(0,0,639,479)设置视口call window(-100.0,-100.0,100.0,100.0)设置窗口坐标call plot(10.0,20.0,3)3-抬笔call plot(50.0,0.0,2)2-落笔call plot(40.0,60.0,2)
8、绘三角形图call plot(10.0,20.0,2)call gstop 关闭绘图状态,清屏回文本状态End(2)执行%ff5 f.for 编译%f.exe 执行,3)C语言(调用绘图函数)(单位像素)(1)编辑 f.c 程序:#include 连接系统库#include 连接数学库#include“graphics.h”连接绘图函数库 main()int driver=DETECT,moder=0;initgraph(关闭绘图系统(2)执行编译执行,4)绘图过程 屏幕绘图绘图程序编缉编译执行生成绘图命令文件 f.plt 5)绘图仪绘图过程打开绘图仪装好笔,纸然后将绘图文件送绘图仪设备,完成
9、绘图。type f.plt prn 或cat f.plt prn 7.计算机绘图例(例:JSJTU-19.FOR),1.2 计算机绘图系统,计算机系统:计算机为中心 包括外部设备 构成的一个有机的整体 计算机软件等 计算机绘图系统:图形图象输入 图形图象输出设备 计算机系统 及其相应的专用软件 图形显示 输入 图形处理器 绘图 图形存储 根据计算机及其外部设备的联接关系和处理能力,可将其分为,第二讲 1.2 计算机绘图系统,联机绘图系统 联机 绘图程序中大计算机绘图文件绘图设备,2.脱机绘图系统 脱机(小型机)绘图程序中大计算机将生成的绘图文件记带控制绘图设备,交互式绘图系统 图形计算机控制绘
10、图仪设备 对图形进行会话式图形处理,1.3.计算机绘图系统的硬件,常用图形输入设备1.鼠标器 光电式 光机式 机械式2.光笔,数字化仪 4.扫描仪 触摸屏 电阻式 电容式 红外线式 声表面波,二。常用图形输出设备 1。绘图仪 1)彩色静电绘图仪,2)笔式绘图仪 A。滚筒式,B。平台式绘图机 HP SR-6602 DXY-880 SPL-450等,平面电机型绘图机,绘图仪的绘图原理(以绘图仪为例).输入绘图命令绘图命令定义符必需大写,单位为微米,幅宽3627cm.B.根据绘图命令驱动,方向步进电机完成绘图。Y X C.重复A,B步骤,完成绘图。4)打印机 A.针式 打印机(24针)star-32
11、00 star-3240 lq-1500 lq-1600 1724 B.喷墨打印机 压电式 汽泡式 静电式 固体式,C.激光打印机,二。图形显示设备 CGA 动态刷新式 图形显示器 存储管式 HGC/MDA单色 光栅扫描图形显示器 EGA VGA1.光栅扫描图形显示器,2).液晶显示器,3).等离子显示器,一操作系统 WINDOWS DOS UNIX 等 二.程序设计语言 C语言(C+V-C B-C)FORTRAN语言 BASIC语言 PASCAL语言 汇编语言等,1.3 计算机绘图系统的软件,三。用户接口的常用形式 子程序库 专用语言 交互命令1。专用语言 1)专用绘图语言解释型,编译型其功
12、能与子程序库类似,但使用其形式与子程序库大不一样,该语言的设计开法难度大。2)使用方法 专用绘图语句语法,词法,参数正确性判断产生相应的数据或图形。2。交互命令(CAD)交互处理交互菜单命令增,删,改,询问,设置等操作,子程序库的建立 1).子程序库 C C+用高级语言FORTRAN编制基本绘图功能子程序 BASCAL PASCAL功能子程序:A.显示方式定义,等方式 B.图形方式定义,线型,字体,颜色等 C.坐标变换二,三维图形变换 D.真实图形处理消隐,光照等 E.用户界面设计命令行,参数,菜单等:图形的,2).使用方法高级语言基本绘图功能子程序图形编程编译执行绘图联接绘图功能子程序3).
13、基本绘图功能子程序(1)绘图应用程序的开发过程操作步骤如下:首先提出设计方案,选择绘图变换及处理方法编制绘图源程序。将源程序输入计算机建立绘图源程序文件。用相应语言分别对应用程序的源文件进行编译以产生目标文件。若编译有错,则修改该程序的源文件并重复或、步操作。,在编译无错的情况下,由连接程序将目标文件、基本图形子程序库、通用绘图程序库和语言系统库等连接成一个可执行的文件。若出现连接错误,则查出错误原因并改正(即重复至各步操作)。执行由步输出的可执行程序,并在绘图设备上输出图形。对输出的图形应进行检查分析,看是否达到预期的要求。如果符合设计要求,则将输出的图形作为成果保存。如果不符合,则应查明原
14、因,进一步改进程序处理方法或修改有关的数据,直到获得满意的图件为止。)屏幕绘图步骤:设置视频模式 确定坐标系统 绘 图 恢复视频模式,C语言图形程序设计基础,C语言有关绘图函数介绍C语言中的图形库graphicsh 图形函数库(个图形函数)*BGI图形设备驱动程序*CHR字符库二图形函数的分类图形系统控制函数个;绘图函数个;填充函数个;屏幕和视区操作函数个;像素处理函数个;,图形模式下的文本输出函数个;颜色控制函数个;错误处理函数个;状态查询函数个;三Turbo C 图形函数的使用环境设置选择Compiler,再键入 M 选择Mode。可选择 Large或 Huge项,注意不能选Tiny。选择
15、Option下 Linker后,将 Graphics设置为 on。若使用的命令行编译,则必需在命令行中列出graphics,lib。,#include#include“graphics.h”图形函数库 main()int gd=DETECT,gm=0;initgraph(关闭绘图方式,回文本方式。,四。C图形程序格式,五。屏幕绘图步骤,设置视频模式 文本方式图形方式 确定坐标系统 绘 图 恢复视频模式 图形方式文本方式,六.图形适配器的基本工作方式,文本方式 图形方式,七.常用图形函数,1.图形初始化函数 格式:文本方式图形方式 initgraph(*gd,*gm,*path);图形初始化 g
16、d=DETECT时,表示自动装入驱动程序。gm=0时,表示在自动装入驱动文件的同时使用可能的最高分辨率。path=“c:tc”指明图形驱动程序所在路径。例:int gd=DETECT,gm=0;initgraph(,格式:图形方式文本方式 closegraph();关闭绘图方式 例#include#include“graphics.h”图形函数库 main()int gd=DETECT,gm=0;initgraph(关闭绘图方式,回文本方式。,2.关闭图方式函数,格式:CALL VIEWPORT(MX,MY1,MX2,MY,c)说明:设置视口时必须给出当前视口的屏幕物理坐标。mx1,my1 x
17、 y mx2,my2 0mx1 mx2639,0my1 my2479 C=1,对超出视口图形部分裁剪,c=0,不裁剪。例如:viewport(320,240,639,479,1),设置视口函数(物理坐标),清除视口函数 格式:clearviewport();清屏函数 格式:cleardevice();,格式:moveto(x,y);x,y为抬笔移动到指定点坐标,并将该点改变为新的当前点。,6.移动到指定点函数,格式:lineto(x,y);x,y为指定点坐标,并将该点改变为当前点。,7.画线到指定点函数,格式:setlinestyle(m,n,k);m为系统预定义线型。n为0和自定义线型(如0
18、 xFFFF)。k为线宽取1或3。例:setlinestyle(0,0,1),8.设置线型函数(用当前填充模式填充),格式:setcolor(color);color 为具有整形值的颜色索引号。取值范围为015,系统定义的颜色为:例:CALL COLOR(7),9.设置前景颜色函数,格式:outtextxg(x1,y1,”字符串“);x1,y1为写字符串位置的坐标。说明:字符串是一串字符,也可用字符数组来装入字符。,10.写字符串函数,格式:rectangle(x1,y1,x2,y2);x1,y1为矩形左上角点的坐标。x2,y2为矩形右上角点的坐标。,11.画矩形块函数,格式:circle(x
19、1,y1,r);x1,y1为圆心坐标。r为圆半径。,12.画圆函数,格式:ellipse(x,y,a1,a2,a,b);x,y为椭圆中心坐标。a1为椭圆弧起始角。a2为椭圆弧终止角。a为椭圆长半轴。b为椭圆短半轴。,13.画椭圆弧函数,格式:drawploy(k,m);k为多边形的顶点数。m为各顶点坐标的集合(一般用数组)。,14.画多边形函数,实例1.,八.程序设计实例,#include#include#include main()int i,gd=DETECT,gm=0;float xy122=100.0,100.0,150.0,100.0,150.0,200.0,200.0,200.0,
20、200.0,100.0,250.0,100.0,250.0,200.0,300.0,200.0,300.0,100.0,350.0,100.0,350.0,200.0,400.0,200.0;initgraph(,实例2.,#include#include#include main()int i,gd=DETECT,gm=0;initgraph(,实例3.画如图所示图形,设正方形边长为1cm。1.坐标原点不改变,直接用用户坐标实现。实习题目一 调用矩形,椭圆,圆子程序实现该题。,#include 连接数学库#include 连接系统库#include 连接绘图库 main()绘矩形块图主函数
21、int Driver,Mode,Error;void rect1;Driver=DETECT;Mode=0;initgraph(/*Clear the screen*/关闭绘图回文本状态,void rect1()绘矩形块图子函数 int x,y,d,r,i;setcolor(12);x=100;y=100;d=50;r=50;moveto(x,y);for(i=0;i5;i+)setcolor(i+1);/*rect5(x,y,0,d,d);*/lineto(x+d,y);lineto(x+d,y+d);lineto(x,y+d);lineto(x,y);x=x+d;y=y+d;moveto(
22、x,y);,x=x-5*d;y=y-d;moveto(x,y);for(i=0;i5;i+)setcolor(i+1);/*rect5(x,y,0,d,d);*/lineto(x+d,y);lineto(x+d,y-d);lineto(x,y-d);lineto(x,y);x=x+d;y=y-d;moveto(x,y);,计算机正常启动后,进入DOS(命令)环境。正常进入DOS后,建立或进入用户目录。启动trubo c的工作窗口:1、tc 2、tc 程序名按F1,打开帮助窗口,用PageUp或PageDown键翻页查看tc常用快捷键,记下常用命令。,进入tc编辑编译环境,进入TC编辑编译环境,
23、Esc键 和 F10键 的使用,读入C原程序文件,F3键:装入C文件 F2键:保存C文件Ctrl+F9键:编译和执行C文件Alt+F5键:查看运行结果,编辑C程序,Ctrl+kb 标志块始Ctrl+kk 标志块尾Ctrl+kc 复制块Ctrl+ky 删除块Ctrl+kv 考贝块Ctrl+kr 读入块Ctrl+kw 块写盘,上机应注意的问题,不要随便修改TC集成环境的参数,以免影响程序的正常编译、连接和运行。快捷键操作帮助我们更熟练快速地编辑和运行程序。F9:编译。CtrlF9:编译和运行。ALTF5:DOS屏幕与TC界面之间切换(查看运行结果)。为了暂停程序运行,在程序最后加上一行:getch();,课堂编程练习题,1.仿照下程序格式,试编出绘制下列观测数据曲线的C程序。,2.仿照下程序格式,试编出绘制下图的C程序,设矩形边长为5。(提示:可用画矩形块函数rectangle(x1,y1,x2,y2);x1,y1为矩形左上角点的坐标;x2,y2为矩形右上角点的坐标;完成。也可用矩形各顶点坐标完成。),实例2.,#include#include#include main()int i,gd=DETECT,gm=0;initgraph(,