计算机地图制图
Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h中,将集成开发环境Options/Linker中的Graphics lib选 为on, 只有这样才能保证正确使用图形函数。
基本图形生成算法
光栅中点的表示
直线的生成算法
圆的生成算法
椭圆生成算法
其它曲线的生成算法
区域的生成算法
字符生成技术
反走样技术
光栅图形中点的表示
光栅显示器上显示的图形称为光栅图形,光栅显示器可以看作是一个像素矩阵。
光栅图形中的点也叫做像素,某一个点就是指某一个像素。
写入一点:putPixel(x,y,Color)
#include graphics.h
int main()
{
int gdriver, gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(gdriver, gmode, );
bar3d(100, 100, 300, 250, 50, 1); /*画一长方体*/
getch();
closegraph();
return 0;
}
直线的生成算法
数值微分法Digital Differential Analyzer
中点画线法
Bresenham算法
改进的Bresenham算法
数值微分法(DDA)
。
。
。
。
数值微分法(DDA)
假定直线的起点、终点分别为:(x0,y0), (x1,y1),且都为整数。
(X i , Yi)
。
。
。
。
数值微分法(DDA)
void DDALine(int x0,int y0,int x1,int y1,int color)
? int x;
float dx, dy, y, k;
dx = x1-x0; dy=y1-y0;
k=dy/dx ; y=y0;
for (x=x0; x?x1; x++)
? putpixel (x, int(y+0.5), color);
y=y+k;
?
?
数值微分法(DDA)
例:画直线段P0(0,0)--P1(5,2)
x int(y+0.5) y+0.5
0 0 0+0.5
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
数值微分法(DDA)
缺点: 在此算法中,y、k必须是float,且每一步都必须对y进行舍入取整,不利于硬件实现。
中点画线法
当M在Q的下方- P2离直线更近更近-取P2 。
M在Q的上方- P1离直线更近更近-取P1
M与Q重合, P1、P2任取一点。
问题:如何判断M与Q点的关系?
中点画线法
假设直线方程为:ax+by+c=0
其中a=y0-y1, b=x1-x0, c=x0y1-x1y0
由常识知:
∴欲判断M点是在Q点上方还是在Q点下方,只需把M代入F(x,y),并检查它的符号。
中点画线法
构造判别式:d=F(M)=F(xp+1,yp+0.5) =a(xp+1)+b(yp+0.5)+c
当d0,M在直线(Q点)下方,取右上方P2;
当d0,M在直线(Q点)上方,取右方P1;
当d=0,选P1或P2均可,约定取P1;
能否采用增量算法呢?
中点画线法
若d?0-M在直线上方-取P1;
此时再下一个象素的判别式为
d1=F(xp+2, yp+0.5)=a(xp+2)+b(yp+0.5)+c= a(xp +1)+b(yp +0.5)+c +a =d+a;
增量为a
中点画线法
若d0-M在直线下方-取P2;
此时再下一个象素的判别式为
d2= F(xp+2, yp+1.5)=a(xp+2)+b(yp+1.5)+c
= a(xp +1)+b(yp +0.5)+c +a +b =d+a+b ; 增量为a+b
中点画线法
画线从(x0, y0)开始,d的初值
d0=F(x0+1, y0+0.5)= a(x0 +1)+b(y0 +0.5)+c
= F(x0, y0)+a+0.5b = a+0.5b
由于只用d 的符号作判断,为了只包含整数运算,
可以用2d代替d来摆脱小数,提高效率。
中点画线法
void Midpoint Line (int x0,int y0,int x1,
您可能关注的文档
- 直接引语变间接引语经典公开课可用解题.ppt
- 电脑组成,计算机组成技术分析.ppt
- 直立式耐酸碱泵的运用解题.ppt
- 直流电动机的拖动解题.ppt
- 直流电路分析计算解题.ppt
- 电脑组装与维护培训技术分析.ppt
- 电能表原理及接线培训技术分析.ppt
- 直流电路总复习解题.ppt
- 我学会了作文指导解题.ppt
- 冶金行业变频器应用200问折录解题.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 幽默卡通动漫笑点设计方法.docx VIP
- 行星式球磨机立式-FOCUCY弗卡斯.PDF VIP
- 贵州省六校联考2025届高三下学期3月高考实用性联考(四)英语试卷(含答案).docx VIP
- 颈椎病的中医护理课件.pptx VIP
- 原调正谱G小小蝴蝶la farfalletta钢琴伴奏高清打印版.pdf VIP
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 广发证券-交通银行-601328-零售转型提速,定增落地夯实资本根基.pdf
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 循环系统护理小讲课.pptx
- 建筑屋面西瓦专项施工方案(范本).doc VIP
原创力文档

文档评论(0)