4 计算机绘图技术(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7
2015-4-13
Anhui University of Technology
交互式系统工作流程图
8
2015-4-13
Anhui University of Technology
4.计算机绘图技术
计算机绘图系统的组成
硬件:计算机、自动绘图仪、图形显示器、输入输出 设备。 软件:图形处理软件、图形程序库、应用程序等。
Anhui University of Technology
4.计算机绘图技术
静态自动绘图系统 当操作者通过键盘、图形输入板输入原始数据或扫 描仪快速输入图形后,系统便可自动进行图形绘制 和显示工作,一个复杂的零件图或装配图,往往可 以在几分钟甚至几秒钟之内完成。这种绘图方式称 静态自动绘图。 它的优点是快捷而省事,缺点是观察者不能对绘制 和显示过程进行干预,只能在过程结束后才能得知 输出结果的正误。
4.1 基本图形的生成方法
在图形设备上输出一条直线,是通过在应 用程序中这对条直线端点坐标的描述,在输出 设备上将一对端点间的路径加以描述来实现的。 一般计算机语言中均有相应的函数可生成这些 基本图形元素。 生成直线的常用插补算法是:逐点比较法、 数值微分法等。 生成圆弧的常用插补算法是:正负法。
12
修改 编辑
6
2015-4-13
Anhui University of Technology
4.计算机绘图技术
动态交互式绘图系统
在图形的绘制和显示过程中,需要有观察者的 参与,要求系统具有人机对话的交互功能。这样的 系统称为动态的计算机绘图。 在动态绘图中,观察者根据需要可以控制和干 预正在显示的图形,直接在显示屏上对图形进行修 改和增补。该系统目前所使用的人机交互工具有光 笔、鼠标器、图形输入板或数字化仪,以及操纵杆、 轨迹球等。
16
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
2.绘制圆弧AB
同理,沿逆时针方向生成圆弧时,坐标 原点取在圆心上,从A点开始,每绘一步 都进行运算比较,然后发出向圆弧靠拢 的命令。若绘图点处在圆弧内,应控制 下一步向+Y方向进给;若绘图点处在圆 外或圆弧上,则下一步应沿-X方向进给 。如此逐点比较逼近于预定的圆弧AB, 直到终点B为止。同样,只要步距很小( 实际是1 μm),用这条折线代替所要绘 图4-5 圆弧生成的原理 制的圆弧也是允许的。
3
2015-4-13
Anhui University of Technology
4.计算机绘图技术
图形处理是CAD/CAM中的关键技术,计算机图形处 理技术就是利用计算机通过算法和程序来存储图形、 在显示设备上构造出图形的一种技术,并在计算机控 制下,把过去由人工一笔一画完成的绘图工作,由自 动绘图机等图形输出设备来完成,大大提高了绘图质 量和效率,减少人工工作量。 由于模具零件图与装配图的绘制占整个模具设计工 作量的一半以上,因此模具CAD中采用自动绘图系统对 于提高模具设计效率、改进模具设计质量十分重要。
17
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
圆弧AB偏差计算
设圆心O为坐标原点,圆弧半径为R,则圆弧上任何一 点将满足下面关系:X2 + Y2 = R2, 即 X2 + Y2 - R2 = 0 (4-2) 所以,可以用偏差 F = X2 + Y2 - R2的大小来判别。即: 当 F≥0时,说明绘图点在圆弧外(或在圆弧上),X负 移一步; 当 F< 0时,说明绘图点在圆弧内,Y正移一步。 假设在某一时刻绘图点M1(X1,Y1)在圆弧外,其偏差 必然为: F1 = X12 + Y12 - R2 > 0
18
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
从上面的讨论中可知,绘图的走向取决于偏差计算的结果, 因此,问题在于如何进行偏差的计算。
图4-6
斜线偏差计算
图4-7
圆弧偏差计算
19
2015-4-13
Anhui University of Technology
21
2015-4-13
Anhui University of Technology
数值微分法画直线(DDA法)
#include <conio.h> #include <stdio.h> #include <stdlib.h> #include <dos.h> #include <graphics.h> #include <math.h> void DDAline(int x1,int y1,int x2,int y2) { float increx,increy,x,y,length; int i; if(abs(x2-x1) > abs(y2-y1)) length = abs(x2-x1); else length = abs(y2-y1); increx=(x2-x1)/length; increy=(y2-y1)/length; x=x1; y=y1; for(i=1;i<=length;i++) { putpixel((int)(x+0.5),(int)(y+0.5),1); x=x+increx; y=y+increy; } } void main() { int x1,y1,x2,y2; int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,""); cleardevice(); setbkcolor(3); printf("input x1,y1,x2,y2:"); scanf("%d%d%d%d",&x1,&y1,&x2,&y2); DDAline(x1,y1,x2,y2); getchar(); getchar(); closegraph(); }
14
图4-4 斜线生成的原理
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
已偏离预定的斜线OA,产生了偏差,第二步应 沿+Y方向走一步到“2”位置。这时,因为点“2”已 处在OA斜线的上方,也偏离了OA斜线,又产生了偏 差。为了纠正这个偏差,应向OA靠拢并沿+X方向走 第三步到点“3”,如此继续不断的走下去,直到A 点。只要每步距离很小(实际是1µ m),所绘的折线 就近似于一条光滑的斜线。
4.1 基本图形的生成方法
一幅图基本的几何元素是点、直线、圆、曲线、 字符串等基本图形元素。为在输出设备上输出一 个点,就要把应用程序中的坐标信息转换成所用 输出设备的响应指令。 在计算机绘图中,点用像素表示,直线和圆弧 由许多段水平或垂直的小线段构成。
11
2015-4-13
Anhui University of Technology
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
逐点比较法
就是在绘图过程中,绘图笔每画一笔,就与规定图 形进行比较,然后决定下一步的走向,用步步逼近 的方法画出规定的图形。
数值微分法(Digital
Differential Analyzer )
4.1 基本图形的生成方法
数值微分法(Digital
Differential Analyzer )
DDA方法的基本原理是:在直线当前位置(xi,yi)上分别加上 两个小增量求出下一点的坐标(xi+1,yi+1),根据dt取值方法的 不同,有两种不同的DDA方法。简单DDA方法 和对称DDA方法
Leabharlann Baidu
简单DDA法,通常取dt=1/max(|dx|,|dy|),由于x,y方向的 步长分别为xinc=dx.dt yinc=dy.dt,所以在x或y变化大的方 向上,步长始终为1,而另一方向上的步长则小于1,其是否走 步,视其是否有整数部分溢出,即: 若|k|<=1,则取xinc=+(或-)1,yinc=+(或-)k,yi+1=yi+(或-)k; 若|k|>1,则取yinc=+(或-)1,xinc=+(或-)1/k,yi+1=yi+(或)1/k; 具体实现可用一套寄存器和加法器来实现。
4
2015-4-13
Anhui University of Technology
4.计算机绘图技术
一个完整的计算机图形系统具有两种功能:
由图变“数” 由“数”变 图
向计算机输入图形; 由计算机控制绘图机输出图样
按其工作方式分为两种类型: 静态自动绘图系统 和 动态交互式绘图系统。
5
2015-4-13
2
2015-4-13
Anhui University of Technology
4.计算机绘图技术
参考书: 姚英学《计算机辅助设计与制造》
蔡颖 P83-116
《CAD/CAM原理与应用》 P78-119
吴永明《计算机辅助设计基础》 P40-45 崔洪斌《计算机辅助设计基础及应用》 P51-69
掌握图形处理技术的基础知识,包括图形生 成、编辑和图形变换等。
计算机绘图研究的内容
主要有图形变换的矩阵方法,立体图形的绘 制和消稳技术,图形数据库,样条曲线和自由曲 面,几何造型,动画技术,以及上述内容的程序 设计。
9
2015-4-13
Anhui University of Technology
4.计算机绘图技术
图形变换是计算机绘图的基本技术,任何计算机 绘图软件都具有:
即DDA法,是一种基于直线微分方程的算法来生成 直线的方法。
参考书:吴永明《计算机辅助设计基础》 P40-45
13
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
逐点比较法
逐点比较法绘制斜线的原理如下: 1.绘制斜线OA 设起点O为坐标原点,终点 坐标为A(Xa,Ya)。 绘图开始时,起始点在O上, 先从O点沿+X方向走一步到 “1”,由图可见,绘图点 “1”是在OA的下方,
15
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
斜线OA偏差计算
设起点O为坐标原点,终点坐标为A(Xa,Ya)。则斜线OA上 的任意一点都必定满足下面比例关系: X/Y = Xa/Ya 即 XaY = XYa (4-1) 所以,若用 F = XaY - XYa来表示偏差的大小,则可根据 偏差计算的结果判别绘图点的位置,并决定下一步绘图的 走向。 即:当F≥0时,说明绘图点在OA上方,下一步应沿X轴的正方 向绘制一步; 当F<0时,说明绘图点在OA下方,下一步沿Y轴正方向绘制 一步。
20
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
对称DDA法,这里首先找到关系式2m-1<= max(|dx|, |dy|)<2m,令dt=2-m,所以xinc=dx.2-m <1 yinc=dy.2-m <1,在x和y两个方向上,步长均小于1, 可用2套寄存器和加法器,将两个方向上的增量分别加 到x和y的小数部分,哪个方向有溢出,就驱动该方向上 走步。 DDA法特点: 产生的直线较精确,逻辑简单易于实现,但需作除法 运算,算法效率不高。
绘图/造型功能 编辑和修改功能
这些编辑和修改功能正是由图形变换的方法产生的 。通过图形变换,可以由简单图形生成复杂图形; 可用二维图形来表示三维图形,也可以对静态图形 通过快速变换而获得动态图形的效果。通过裁剪, 可以截取落在指定区域内的图形等。
10
2015-4-13
Anhui University of Technology
22
2015-4-13
Anhui University of Technology
4.1 基本图形的生成方法
4
计算机绘图技术
Anhui University of Technology
4.计算机绘图技术
4.1 基本图形的生成方法 4.2 计算机绘图的方法 4.2.1 轮廓线法 4.2.2 参数化 4.2.3 图元拼合法 4.2.4 尺寸驱动/参数化草图/变量化设计 4.3 图形的几何变换 重点 难点 4.3.1 坐标系 4.3.2 窗口视图变换 4.3.3 二维图形的几何变换 4.3.4 三维图形的几何变换
相关文档
最新文档