计算机图形学实验 下载本文

float k;

by=arr[polydeflen-1][1]; for (i=0;i

if (i == polydeflen-1) { } else { }

x=arr[i][0]; y=arr[i][1]; if((y-ay)!=0)

k=(ax-x)/(float)(y-ay); ax=arr[i+1][0]; ay=arr[i+1][1]; ax=arr[0][0]; ay=arr[0][1];

if((y-by)*(ay-y)>=0)

putpixel(x,y,value);

getch(); if(ay

for(j=y-1;j>ay;j--)

}

}

putpixel(x+(int)((y-j)*k),j,value);

else for(j=y+1;j

putpixel(x-(int)((j-y)*k),j,value);

by=y;

void edge_mark_fill(int ar[][2],int value,int polydeflen) {

int i,x,y,inside; int min,max; inside=false;

min=ar[0][1];max=ar[0][1]; edge_mark(ar,value,polydeflen); for (i=1;i

for (y=min;y<=max;y++) {

for(x=0;x<=640;x++) if (ar[i][1]>max)

max=ar[i][1];

if (ar[i][1]

min=ar[i][1];

}

}

{ }

if(getch()==17)

exit(1);

if (getpixel(x,y) == value)

inside=!(inside);

if (inside!=false)

putpixel(x,y,value);

else putpixel(x,y,0);

void main() {

char t[100]; int polydef[MP][2];

int i,j,gdriver,gmode,polydeflen,value; gdriver=DETECT;

initgraph(&gdriver,&gmode,\printf(\scanf(\printf(\scanf(\

printf(\

}

for (i=0;i

for (j=0;j<2;j++)

scanf(\

printf(\edge_mark_fill(polydef,value,polydeflen); for(i=0;i

}

sprintf(t,\outtextxy(polydef[i][0],polydef[i][1],t);

getch(); closegraph();

实验截图:

实验4 二维图形几何变换

实验目的

1、 通过实验,进一步理解和掌握二维图形几何变换算法;

2、 掌握以上算法进行二维图形几何变换基本过程; 3、 通过编程,会在TC环境下完成二维图形几何变换过程。 实验环境

计算机、Turbo C或其他C语言程序设计环境 实验学时

2学时,必做实验。 实验内容

任意画一个平面图形,

(1)按比例缩小或放大.缩放比例由用户定义,缩放的参考点由用户确定; (2)旋转.由键盘输入旋转角度和旋转中心。 实验步骤

1、 算法、原理清晰,有详细的设计步骤;

2、 依据算法、步骤或程序流程图,用C语言编写源程序; 3、 编辑源程序并进行调试;

4、 进行运行测试,并结合情况进行调整; 5、 对运行结果进行保存与分析;

6、 打印源程序或把源程序以文件的形式提交; 7、 按格式书写实验报告。

实验代码: #include \#include \#include\