第三章绘制基本图元

合集下载

proe入门基础教程(完整版)

proe入门基础教程(完整版)

第2截面
第3截面
给出坐标
实例2创建零件如图
截面1
截面2
混合点
两个 旋转 角为
90°
截面3
2.6.5 一般混合实体特征的操作步骤
一般混合特征具有更大设计灵活性,用于创 建形状更加复杂的混合特征 ;
• 1. 调用方法: • “插入”→“混合”→“伸出项”
2. 操作步骤: • ⑴ 调用混合工具 • ⑵ 设置属性 • ⑶ 绘制多个等点截面; • ⑷ 确定
3-1 草绘1
拉伸到指定面
草绘
草绘
3-2: 拉伸1 拉伸深度:100
3-3 草绘2
草 绘 平 面
3-4 拉伸2
拉伸 倒指 定面
选下底面为草绘面进入下一草绘
3-5 草绘3
3-6 拉伸3
拉 伸 去 材 料
例4 : 创建如图零件 应用 工具
4-1 草绘1→拉伸1
选此面做为草绘平面 进入下一草绘
⑴ 平行混合特征:
连接成混合特征的多个等点截面相互平行。
⑵ 旋转混合特征:
连接成混合特征的多个等点截面相互不平行,后 一截面的位置由前一截面绕Y轴转过指 定角度来确定。
⑶ 一般混合特征:
连接成混合特征的各个等点截面具有更大 的自由度。后一截面的位置由前一截面分别绕X、Y和Z 轴转过指定角度来确定。
说明
主要使用的按钮
工具条
2.2.2 二维草绘的操作
草绘操作包括
环境设置 图元绘制 图元编辑 尺寸标注 约束
1)环境设置 “草绘”→“选项”→“草绘器优先选项”
2)基本图元绘制
绘制图元工具如图示
直线/与图元相切直线/中心线
创建矩形
圆心及点/同心圆/三点 圆/三切圆/正椭圆

SolidWorks2012中文版从入门到精通——第3章:基础特征建模

SolidWorks2012中文版从入门到精通——第3章:基础特征建模

SOLIDWORKS_2012中文版从入门到精通第三章基础特征建模在SW中,特征建模一般分为基础特征建模和附加特征建模两类。

基础特征建模是三维实体最基本的绘制方式,可以构成三维实体的基本造型,基础特征建模相当于二维草图中的基本图元,是最基本的三维实体绘制方式。

基础特征建模主要包括拉伸特征、拉伸切除特征、旋转特征、旋转切除特征、扫描特征与放样特征等。

一、特征建模基础SW提供了专用的“特征”工具栏,如下图所示,单击工具栏中的相应图标就可以对草图实体进行相应的操作,生成需要的特征模型。

二、参考几何体参考几何体主要包括基准面、基准轴、坐标系与点4个部分。

参考几何体操控板如下图:1、基准面基准面主要用于零件图和装配图中,可以利用基准面来绘制草图,生成模型的剖面视图,用于拔模特征中的中性面等。

SW提供了前视基准面、上视基准面和右视基准面3个默认的相互垂直的基准面。

创建基准面有6种方式,分别是:通过直线/点方式、点和平行面方式、夹角方式、等距距离方式、垂直于曲线方式与曲面切平面方式。

1、通过直线/点方式该方式创建的基准面有3种:通过边线、轴;通过草图线及点;通过三点。

2、点和平行面方式该方式用于创建通过点且平行于基准面或者面的基准面。

3、夹角方式该方式用于创建通过一条边线、轴线或者草图线,并与一个面或者基准面成一定角度的基准面。

4、等距距离方式该方式用于创建平行于一个基准面或面,并等距指定距离的基准面。

5、垂直于曲线方式该方式用于创建通过一个点且垂直于一条边线或者曲线的基准面。

6、曲面切平面方式该方式用于创建一个与空间面或圆形曲面相切于一点的基准面。

2、基准轴基准轴通常在草图几何体或者圆周阵列中使用。

每一个圆柱和圆锥面都有一条轴线。

临时轴是由模型中的圆锥和圆柱隐含生成的,可以单击菜单栏中的“视图”→“临时轴”命令来隐藏或显示所有的临时轴。

创建基准轴有5种方式,分别是:直线/边线/轴方式、两平面方式、两点/顶点方式、圆柱/圆锥面方式与点和面/基准面方式。

CAD基本图元的绘制自学

CAD基本图元的绘制自学

实验一:基本图元的绘制一、实验目的熟练掌握基本图元的绘制和精确定位方法。

二、实验设备具备Windows操作系统的PC机三、实验原理1、基本图元中相对坐标、绝对坐标、极坐标的应用;2、制图中的相交平行线的应用。

3、等分线的应用。

四、实验步骤五、实验数据记录及结果处理1.(1).先画一个长度为80的直线,然后定数等分为4份,再分别画两条30的直线.端点和第一个等分点相连.然后选择圆弧(起点,端点,角度),然后菜单-绘图-点-单点.再同时按ctrl键和鼠标右击选择圆心.出现后与两端点相连.1、(2)画一长度为80的直线,定数等分为4份,直线左右两端点向上作长度为30的垂线,连接两垂线端点与第一等分点;在两垂线端点处再分别作角度为52.5和-52.5的直线,与在第二等分点处向上的垂线相交于一点。

2.先画一条长78的直线,然后以左端点为圆心画长度为65的圆,再以另一边端点向上画长度为58的垂线,再以它为端点向圆的方向延长得到一个交点.在以左边端点与相交点相连,并画长度为15的线,继续与右端点相连.3.先画一条直线,然后以右端点为圆心.画一个半径为80的圆.然后以右端点为起点画一条角度为141.5的直线.然后以与圆相交的点为起点画一个角度为125.5的直线并与之前的直线相交.4.(1)(根据正五边形的每个内角是108度画出五边形),先画一个长为75的直线,然后选择圆弧(起点,端点,角度)选择直线左右端点并输入角度108.同时按ctrl和鼠标右键选择圆心然后以它为顶点画五边形(输入边e)使得两个角正好在直线两端点.然后画圆(相切,相切,相切,)然后再同时按crtl和鼠标右键选择圆心.接着根据圆心在画出里面的图形.2、(2)画一长度为75的直线,过直线两端点作两条垂线,取该直线中点为正五边形中心点,并使正五边形中间两角点与两条垂线相切;以直线中点为圆心,作与正五边形内切的圆;以直线中点为中心,作与圆内切的正四边形;以直线中点为圆心,作与正四边形内切的圆;以直线中点为中心,作与圆内切的正三角形。

计算机图形学绘制基本图元

计算机图形学绘制基本图元

实验1《实验环境配置和基本图元绘制》实验学时:实验地点:二综实验日期:一、实验目的指出此次实验应该达到的学习目标。

配置基本实验环境、安装软件包、建立工程和绘制基本图元,要求学会点、线、三角形、四边形的绘制方法,学会消息传递和响应机制,用一个实例完成上述要求。

二、实验内容指出此次实验应完成的任务。

1.配置OpenGL绘图环境;2.绘制点、线、三角形、四边形等基本图元。

三、实验方法包括实验方法、原理、技术、方案等。

VC2005操作完成四、实验步骤指出完成该实验的操作步骤。

3.配置OpenGL绘图环境;4.绘制点、线、三角形、四边形等基本图元。

五、实验结果记录实验输出数据和结果。

六、实验结论对实验数据和结果进行分析描述,给出实验取得的成果和结论。

注:有程序的要求附上程序源代码,有图表的要有截图并有相应的文字说明和分析#include<GL/glut.h>#include<stdio.h>#include<stdlib.h>static float rotAngle = 0.;void init(void){GLfloat values[2];glGetFloatv (GL_LINE_WIDTH_GRANULARITY, values);printf ("GL_LINE_WIDTH_GRANULARITY value is %3.1f\n", values[0]);glGetFloatv (GL_LINE_WIDTH_RANGE, values);printf ("GL_LINE_WIDTH_RANGE values are %3.1f %3.1f\n",values[0], values[1]);glEnable (GL_LINE_SMOOTH);glEnable (GL_BLEND);glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE);glLineWidth (1.5);glClearColor(0.0, 0.0, 0.0, 0.0);}void display(void){glClear ( GL_COLOR_BUFFER_BIT );glPointSize (5);glBegin ( GL_POINTS );glVertex3f (-0.5, -0.5, 0.0);glVertex3f (0.5, -0.5, 0.0);glVertex3f (0.5, 0.5, 0.0);glVertex3f (-0.5, 0.5, 0.0);glEnd ();glLineWidth (5);glBegin ( GL_LINES );glVertex3f (-0.6, -0.6, 0.5);glVertex3f (0.4, -0.6, 0.5);glVertex3f (0.1, 0.1, -0.5);glVertex3f (-0.1, 0.1, -0.5);glEnd ();glBegin (GL_TRIANGLES);glColor4f(0.0, 1.0, 1.0, 0.75);glVertex3f(0.9, 0.9, 0.0);glVertex3f(0.3, 0.5, 0.0);glVertex3f(0.9, 0.1, 0.0);glEnd();glPointSize (1);glBegin (GL_QUADS);glVertex3f (-0.5, -0.5, 0.0);glVertex3f (0.5, -0.5, 0.0);glVertex3f (0.5, 0.5, 0.0);glVertex3f (-0.5, 0.5, 0.0);glEnd ();glFlush ();}void reshape(int w, int h){glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();if (w <= h)gluOrtho2D (-1.0, 1.0,-1.0*(GLfloat)h/(GLfloat)w, 1.0*(GLfloat)h/(GLfloat)w);elsegluOrtho2D (-1.0*(GLfloat)w/(GLfloat)h,1.0*(GLfloat)w/(GLfloat)h, -1.0, 1.0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();}void keyboard(unsigned char key, int x, int y){switch (key) {case'r':case'R':rotAngle += 20.;if (rotAngle >= 360.) rotAngle = 0.;glutPostRedisplay();break;case 27: /* Escape Key */exit(0);break;default:break;}}/* Main Loop* Open window with initial window size, title bar,* RGBA display mode, and handle input events.*/int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);glutInitWindowSize (200, 200);glutCreateWindow (argv[0]);init();glutReshapeFunc (reshape);glutKeyboardFunc (keyboard);glutDisplayFunc (display);glutMainLoop();return 0;}七、实验小结给出本次实验的体会,如学会了什么,遇到哪些问题,如何解决这些问题,存在哪些有待改进的地方。

边做边学AutoCAD建筑制图立体化教程第3章绘制和编辑平面图形三

边做边学AutoCAD建筑制图立体化教程第3章绘制和编辑平面图形三

边做边学AutoCAD建筑制图立体化教程第3章绘制和编辑平面图形三contents目录01 /绘制建筑平面图02 /编辑建筑平面图03 /绘制和编辑建筑立面图04 /绘制和编辑建筑剖面图05 /绘制和编辑建筑详图绘制建筑平面图绘制建筑平面图的步骤01020304 05绘制完成后,保存并打印出图纸。

添加尺寸标注,确保图形的准确性和可读性。

使用偏移、修剪等编辑命令,对绘制的图形进行修改和完善。

使用直线、圆弧等基本绘图命令,绘制出建筑的墙体、门窗等基本结构。

打开A u t o C A D软件,新建文件并设置好单位和绘图比例。

绘制建筑平面图的基本命令•L I N E:绘制直线C I R C L E:绘制圆A R C:绘制弧线P L I N E:绘制多段线R E C T A N G L E:绘制矩形E L L I P S E:绘制椭圆P O L Y G O N:绘制多边形T E X T:添加文本D I ME N S I O N:添加尺寸标注B L OC K:创建和插入块H A T C H:填充图案S C A L E:调整图形比例M O V E:移动图形C O P Y:复制图形M I R R O R:镜像图形R O T A T E:旋转图形O F F S E T:偏移图形T R I M:修剪图形E X T E N D:延伸图形F I L L E T:倒角C H A M F E R:倒圆角E X P L O D E:分解块G R O U P:组合图形L A Y E R:管理图层C O L O R:设置颜色L I N E S T Y L E:设置线型L I N E W E I G H T:设置线宽Z O O M:缩放视图P A N:平移视图U N D O:撤销操作R E D O:恢复操作绘制建筑平面图的实例绘制墙体:使用直线工具绘制墙体,并设置墙体的厚度和材质。

绘制家具:使用矩形工具绘制家具,并设置家具的大小和位置。

《基本图形的绘制》课件

《基本图形的绘制》课件

05
练习与提高
练习绘制基本图形
直线
学会使用鼠标或绘图笔绘制直线,掌 握调整线条粗细和颜色的技巧。

学习绘制圆形,理解圆的半径、直径 和圆心的概念,以及如何调整圆的大 小和颜色。
多边形
学会绘制多边形,理解多边形的边数 、角度和顶点的概念,掌握调整多边 形大小和形状的方法。
椭圆
学习绘制椭圆形,理解椭圆的轴长和 旋转角度的概念,掌握调整椭圆大小 和形状的方法。
位图图形
位图图形由像素点组成,其特点是能 够表现丰富的颜色和细节,适合用于 渲染照片和图像。
图形绘制库的使用
Pygame
Pygame是一个用于制作游戏的Python库,也提供了丰富的 图形绘制功能。使用Pygame可以轻松地绘制各种基本图形 ,并添加动画效果。
Processing
Processing是一个基于Java的开源编程环境,专门用于制作 数据可视化和计算机图形。Processing提供了丰富的图形绘 制函数,可以轻松地绘制各种基本图形和生成复杂的视觉效 果。
03
Java绘图库
Java是一种跨平台的编程语言,也提供了丰富的图形绘制功能。使用
Java的Swing和AWT库,可以轻松地绘制各种基本图形。
计算机图形学中的基本图形概念
矢量图形
几何变换
矢量图形由一系列的点和线段组成, 其特点是缩放不失真,适合用于绘制 各种形状和图标。
几何变换是计算机图形学中的一种技 术,通过平移、旋转、缩放等操作, 可以将基本图形组合成复杂的图形。
基本图形的分类
直线型基本图形
如线段、射线、垂直线等。
曲线型基本图形
如圆、椭圆、弧线等。
多边形基本图形

基本图元的绘制

基本图元的绘制
下拉菜单: 下拉菜单: 【绘图】→ 【多段线】 “绘图”工具栏: 【多段线】 绘图”工具栏: 绘图 命令行: 命令行:PLINE(PL) ↙
该命令既可以画直线,也可以画弧线, 该命令既可以画直线,也可以画弧线,既可 以画细线也可以画粗线。 以画细线也可以画粗线。
上一页
目录
下一页
上一页
目录
下一页
3.11绘制样条曲线 3.11绘制样条曲线
上一页
目录
下一页
3.4 绘制椭圆
下拉菜单: 绘图】 椭圆】 下拉菜单: 【绘图】 → 【椭圆】 “绘图 工具栏: 绘图】 “绘图”工具栏:【绘图】 → 【椭圆】 绘图” 椭圆】 命令行:Ellipse( 命令行:Ellipse(EL) ↙
上一页
目录
下一页
L C
E1
E1
L E2
1、椭圆心C、轴端点E1、另一半轴长L 绘椭圆的二种方式
上一页
目录
பைடு நூலகம்
下一页
3.7.2 绘制点的方式
1、绘制单个点 下拉菜单: 绘图】 单点】 下拉菜单:【绘图】→【点】→【单点】 命令行:POINT(PO) ↙ 命令行: 2、绘制多点 下拉菜单: 绘图】 多点】 下拉菜单:【绘图】→【点】→【多点】 “绘图”工具栏:【绘图】→【点】 绘图”工具栏: 绘图】 绘图
目录
下一页
1.绘制多线 1.绘制多线 下拉菜单: 绘图】 多线】 下拉菜单:【绘图】→【多线】 “绘图”工具栏:【绘图】→【多线】 绘图” 多线】 绘图 工具栏: 绘图】 命令行: 命令行:MLINE(ML) ↙ 2.创建多线样式 2.创建多线样式 下拉菜单:格式→ 下拉菜单:格式→多线样式 命令行: 命令行:MLSTYLE ↙

工程制图第3章 基本体

工程制图第3章 基本体
辅助平面法是根据三面共点的原理,利用辅助平面求 出两曲面表面上的若干共有点,从而求出相贯线的投影。
选择适当的平面作为辅助平面。
为了简化作图,辅助平面的选择原则是:要使辅助平 面与两立体表面的截交线的投影简单易画,例如由直线或 圆组成的图形。而且辅助平面一般应选投影面平行面。
辅助平面法求相贯线的原理
圆柱面 辅助平面 圆锥面
想象空间形状。
作出圆锥面上双曲线的投影。
作出大圆柱面和小圆柱面平行与轴线的两条直线的投影。
§3-3 相贯体的投影
1. 定义:相交两立体表面的交线称为相贯线。
平面体与回转体相贯
回转体与回转体相贯
三体相贯
2.相贯线的形状
(1) 取决于相贯表面的形状、大小和相对位置 (2) 其投影取决于相贯物体对投影面的相对位置
找出中间点4、点5的三视图
用光滑曲线顺次连接各点
整理图形
两圆柱垂直相交在物体中相贯线的三种形式
轴线垂直相交的两圆柱直径变化时,相贯线的变化趋势
水平圆柱大
两圆柱直径相等
水平圆柱小
轴线垂直相交的两圆柱位置变化时,相贯线的变化趋势
两轴线垂直相交
两轴线垂直交叉
两轴线平行
二、 辅助平面法求相贯线
一、表面取点法
就是根据投影具有积聚性的特点,由两回转体表面上若干 共有点的已知投影求出其它未知投影,从而画出相贯线的投 影。 例 求作两垂直相交的圆柱的相贯线。
作图方法:
• 先找特殊点 • 再求中间点 (用表面取点法) • 连接各点并判可见性
找特殊点(最左点2, 最右点1, )的三视图
找特殊点(最低点3 )的三视图
yy
1
5
用辅助平面法找出点3 和点7 的俯视图与左视图。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0
1
2
3
4
5
Bresenham算法
• Bresenham画线算法是一种精确而有效的光栅线生成算法,该算法还可用于 圆和其它曲线。
• 如下图,首先考虑斜率小于1的直线的扫描转换过程,沿线段路径的像素位置 由以单位x间隔的采样来确定。从给定线段的左端点(x0, y0)开始,逐步处理每 个后继列(x位置),并在其扫描线y值最接近线段的像素上绘出一点。下图显示 了这个过程的第k步。假设已经决定要显示的像素在(xk, yk),那么下一步需要 确定在列xk+1= xk+1上绘制那个像素,是在位置(xk+1, yk),还是在(xk+1, yk+1)。
已知过端点P0 (x0, y0), P1(x1, y1)的直线段L的方程为:
y=kx+b
直线斜率为
k
y1 y0 x1 x0
当斜率的绝对值小于1时,从x的左端点x0开始,向x的右端点逐步递增。 步长=1(象素单位),计算相应的y坐标y=kx+b;取象素点(x, round(y))作为 当前点的坐标。
几何图元的参数和含义
参数值 GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP 意义 独立的点 一对顶点表示一条线段 各顶点连接成的线段 各顶点连接成的封闭线段
GL_TRIANGLES
GL_TRIANG个顶点构成的三角形
直线段的扫描转换算法
• 直线的扫描转换: 根据直线的几何特征,可确定最佳逼 近于该直线的一组象素,并且按扫描线顺序,对这些象 素进行写操作。 • 两种常用算法: 数值微分法(DDA) Bresenham算法。
数字微分法
• 基本思想:根据线段斜率的不同,在某个坐标轴上以单位间隔对线段采 样,在另一个坐标轴上确定最靠近线段的对应整数值。
• 计算机只能处理数据,为了能在屏幕上显示三维图形,必须 将三维图形与数据相联系,将数据与三维图形联系在一起的 唯一纽带,就是坐标。 • 为了描述图形,首先必须建立一个世界坐标系(二维或三维笛 卡尔坐标系),在世界坐标系中给出图形对象的位置和方向, 然后投影到显示设备的显示区域对应的二维平面上,并扫描 转换到帧缓存的整数像素位置。 • 如可以通过两个端点定义一条直线段,通过一组顶点定义一 个多边形。对象的坐标范围(x、y、z坐标的最大最小值)称为 对象的包围盒,对于二维图形,坐标范围就是包围矩形。
指定顶点坐标
• OpenGL中,可以使用函数glVertex()指定顶点的坐标, 但顶点既可以是一个纯粹的点,也可以是线段的端点, 还可以是多边形的角点, OpenGL中共有10种图元,必 须明确指明这些顶点构成何种图元。
• OpenGL中将每组顶点放在函数glBegin() 和glEnd()之 间,由glBegin() 的参数来指定相应的几何图元,然后调 用glEnd()来结束这组顶点的定义。
第三章 绘制基本图元
• 复杂的三维图形是由一个个简单的图元构成的,点和
直线段是最简单的几何图元,此外还有多边形、圆,
二次曲线、二次曲面、样条曲线、样条曲面等。
• 本章介绍OpenGL的输出图元及底层(设备级)实现算
法,以便深层次地掌握图形绘制的原理和方法,提高 计算机图形的制作水平。
3.1 坐标系统
从 (xk, yk)像素开始,绘制斜率0<m<1的直线的屏幕局部
• 在采样位置xk+1,用dlower和dupper来表示两个像素与直线段路径的垂直偏移。 直线段上像素列位置处的y坐标为:
• • • • • y=m(xk+1)+b = m(xk+1)+b -yk dupper = ( yk+1) -y = yk+1 -m(xk+1) - b dlower - dupper =2m(xk+1) - 2 yk ++2b-1 • 则: dlower =y -yk
3.3 直线段的扫描转换算法
• • • • • • • • 例2-2给出了一个绘直线段的例子,代码如下: glBegin(GL_LINES); //开始定义一组顶点坐标, //每相邻的两个两点组成一对,在该两点之间绘直线 glVertex2i(180, 15); //定义顶点坐标 glVertex2i(10, 145); //结束定义一组顶点坐标 glEnd(); 例3-3(LSTRIPS)给出了一个由直线段逼近三维螺旋曲线的例子 场景中的直线段由其两端点的坐标来定义,要在光栅显示器上显示一条线段,必须先 将两个端点投影到整数屏幕坐标,并确定离两端点间的直线路径最近的像素位置,将 颜色值赋予帧缓存中的对应位置。这一过程将一条连续的线段离散为一组整数光栅位 置。一般而言,这些位置是实际线段路径的逼近。如计算出的直线位置(10.48, 20.51), 转换为像素位置为(10, 21)。坐标值舍入到整数,使线段呈锯齿状,这就是走样。光栅 化特有的锯齿现象在低分辨率系统中特别明显,在高分辨率系统中可以得到改善。平 滑光栅线段的有效方法是反走样技术。
相连的三角形条带 相连的扇形
GL_QUADS
GLQUAD_STRIP GL_POLYGON
四个顶点构成的四边形
相连的四边形条带 简单的凸多边形
绘制三维点
• 例3-1(POINTS)绘制一系列的三维点,使它们沿Z轴形成一个螺旋圈。 • glBegin(GL_POINTS); • • • • • • • • • • • • z = -50.0f; for(angle = 0.0f; angle <= (2.0f*GL_PI)*3.0f; angle += 0.1f) { x = 50.0f*sin(angle); y = 50.0f*cos(angle); // Specify the point and move the Z value up a little glVertex3f(x, y, z); z += 0.5f; } // Done drawing points glEnd();
由直线方程可得下一个采样点的y坐标为: yi+1= kxi+1+b = kxi+b+kx = yi+kx
当x =1时;
• • •
yi+1 = yi+k
即:当x每递增1,y递增k(即直线斜率); 注意上述分析的算法仅适用于k ≤1的情形。在此情况下,x每增加1,y最多增加1。 当 k 1时,必须把x,y的地位互换:
• 要确定两像素中哪一个更接近线段路径,需要测试这两个像素偏移的差:
在采样位置xk+1处,像素位置到直线上y坐标之间的垂直距离
• • • •
设y和x分别为两端点的垂直和水平偏移量,则m=y/x,定义决策参数pk为: pk = x(dlower - dupper) = 2y xk -2x yk+c 3-1 其中c = 2y+ x(2b -1 ), pk的符号与dlower - dupper的符号相同(此例中x >0 )。假 如yk处的像素比yk+1的像素更接近于线段(即dlower < dupper) ,那么参数pk是负的,此时 绘制下面的像素,反之,绘制上面的像素。 可以利用递增整数运算得到后继的决策参数值。在k+1步,可得决策参数为: pk+1 = 2y xk+1 -2x yk+1+c 将两式相减,可得: pk+1 - pk = 2y(xk+1 - xk ) - 2x(yk+1 -yk ) 但xk+1 = xk +1,因而 3-2
• 由于一个像素位置占有屏幕上的一个有限范围,因此图形显示算法必须考虑 像素的有限大小,一般假定像素坐标对应于像素区域的中心。
屏幕上的笛卡尔坐标系
显示窗口
• 上一章的绘图实例中应用gluOrtho2D(xmin, xmax, ymin, ymax)函数设定了一个二 维视见空间(二维笛卡尔坐标系),其参数指定了显示窗口的x、y坐标范围。
• 显示窗口的左下角位于坐标(xmin,ymin)处,右上角位于坐标(xmax,ymax)处。 • 如果一个图元的坐标范围完全在显示窗口内,该图元将完整地显示出来,否 则,仅仅位于显示窗口范围内的部分图元能显示出来,这涉及到裁剪。
3.2 顶点及图元
• 在OpenGL中所有的几何物体最终都要描述成一个顶点的有序集合,包括单 个点、线段的端点或多边形的顶点。
点的属性
• 点的属性包括颜色和大小,可以调用函数glPointSize()来改变点的大小,该函数有1个参数,指定 点的近似直径(以像素为单位),但点的大小设置还是存在限制。

• • • • • • • • • • • • • • • • •
另外,点和其它几何图形不同,它不会受到透视的影响,即离视点较远时,看上去并不会变小, 离视点更近时,看上去也不会变大。

• •
xi+1= xi+1/b
该算法能在有限的线段长度内,根据斜率的不同合理确定尽可能多的像素来逼近该 直线段。 DDA算法计算像素的位置比直接使用直线方程计算的速度要快,它利用光栅特性消 除了直线方程中的乘法,在x或y方向使用合适的增量,在直线路径上逐步得到各像 素的位置。 但在浮点增量的连续累加中,取整误差的积累使得对于较长线段所得到的像素位置 偏离实际线段,且该过程中的取整操作和浮点运算仍然十分耗时。促使人们考虑既 能用于直线,又能用于曲线的更通用的扫描线算法。

• 例:画直线段P0(0,0)--P1(5,2) • k=0.4 x int(y+0.5) y+0.5 0 0 0 1 0 0.4+0.5 2 1 0.8+0.5 3 1 1.2+0.5 4 2 1.6+0.5 5 2 2.0+0.5
相关文档
最新文档