下载此文档

图形学实验报告格式.doc


文档分类:高等教育 | 页数:约72页 举报非法文档有奖
1/72
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/72 下载此文档
文档列表 文档介绍
图形学实验报告格式
实验一直线、圆弧及曲线的生成算法
一、实验目的
1、几种直线生成算法的比较,特别掌握用Bresenham直线生成算法。
2、几种圆弧生成算法的比较,掌握Bresenham圆弧生成算法。
3、掌握用像素点法直接生成其它曲线的方法。
二、基本要求
1、用不同的生成算法在屏幕上绘制出直线的图形,对不同的算法可设置不同的线形或颜色表示区别。
2、用Bresenham生成算法在屏幕上绘制出圆弧的图形,用动画的方式表演图形的生成。
三、算法提示
1、有关直线生成算法有:DDA(数值微分)直线算法、逐点比较法、直线Bresenham生成算法。
直线Bresenham生成算法思想如下(第一象限,且斜率k<1的情况图2-1 a中的1a):
画点(x1,y1),dx=x2-x1,dy=y2-y1,计算误差初值P1=2dy-dx,i=1;
圆的生成算法一般将圆划分为8等份,只需计算(900,450)的八分之一圆弧,其它用对称法求得(参见图2-1 b)。
Bresenham生成算法思想如下(第一象限,且斜率k<1的情况):
计算误差初值P1=3-2r,i=1,画点(0,r);
求下一个光栅点位置 xi+1=xi+1 如果Pi<0,则yi+1=yi,否则 yi+1=yi-1;
画点(xi+1,yi+1);
4) 求下一个误差Pi+1点,如果Pi<0,则Pi+1=Pi+2xi+6,否则 Pi+1=Pi+4(xi-yi)+10;
5) i=i+1,如果x=y则结束操作,否则转步骤2。
圆Bresenham算法的算式简单,只需做加减法和乘4运算

适当选取坐标,将屏幕分成几个区域性,在每个区域内实现一种算法,生成一个图形。也可用delay实现延时实现动画。
四、上机作业题及思考题
1、用正负法编程绘制圆弧
2、用直线Bresenham生成算法绘制直线。
3、用Bresenham生成算法绘制圆。
五、参考源程序
1、数值微分法生成斜率小于90的直线
/* DDA line 数值微分法生成斜率小于90的直线*/
#include <>
#include ""
main()
{
int xo,yo,xa,ya,i,j;
int dx,dy,c;
float ddx,ddy,x,y;
Initialize();
printf("input start x,y(x=0-640,y=0-480)\n");
scanf("%d,%d",&xo,&yo); /* 输入直线的两个点*/
printf("xa:%d-- 639 ",xo);
scanf("%d",&xa);
printf(" ya: 0 .. %d ",yo);
scanf("%d",&ya);
printf("red line is system,yellow is create\n");
if (xa>=xo && xa<=639 && ya>=0 && ya<=yo)
/* 数值微分法生成直线算法*/
{
outtextxy(xo,yo+5,"o");
outtextxy(xa,ya-10,"a");
dx=xa-xo;
dy=yo-ya;
if (dx>dy) c=dx;
else c=dy;
ddx=dx*;
ddy=dy*;
x=xo*;
y=yo*;
setcolor(12);
line(xo,yo,xa,ya);
getch();
while (c>=0)
{ i=round(x);
j=round(y);
putpixel(i,j,14);
x=x+ddx;
y=y-ddy;
c=c-1;
}
}
else printf("data error");
getch();
closegraph();
}
int round(ff)
float ff;
{ int k;
if ((ff-(int)ff)>) k=(int)ff+1;
else k=(int)ff;
k=(int)ff;
return(k);
}
2、逐点插补法生成圆弧源程序
/* STEP CIRCLE 逐点插补法生成圆弧*/
#include <>
#include ""
main()
{
int xo,yo,xa,ya,r,l,f;
Initialize();
printf("input x,y,r"); /* 输

图形学实验报告格式 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数72
  • 收藏数0 收藏
  • 顶次数0
  • 上传人Alone-丁丁
  • 文件大小2.09 MB
  • 时间2021-12-27
最近更新