图像处理c语言程序,图像处理C语言程序.doc

#include

#include "affine.h"

main()

{ int driver=DETECT,mode,i;

static double x1[]={0.0,10.0,80.0,100.0,0.0};

static double y1[]={0.0,50.0,50.0,0.0,0.0};

static double x2[5],y2[5],x3[5],y3[5],x4[5],y4[5];

double x,xx,yy,r;

initgraph(&driver,&mode,"");

axis();

for(i=0;i<=3;i++)

{line(scx(x1[i]),scy(y1[i]),scx(x1[i+1]),scy(y1[i+1]));

}

scale(2.0);

for(i=0;i<=4;i++)

{ x2[i]=affinex(x1[i],y1[i],1.0);

y2[i]=affiney(x1[i],y1[i],1.0);

delay(30000);

}

for(i=0;i<=3;i++)

{ line(scx(x2[i]),scy(y2[i]),scx(x2[i+1]),scy(y2[i+1]));

}

r=60;

rotate(r);

for(i=0;i<=4;i++)

{ x3[i]=affinex(x2[i],y2[i],1.0);

y3[i]=affiney(x2[i],y2[i],1.0);

delay(30000);

}

for(i=0;i<=3;i++)

{ line(scx(x3[i]),scy(y3[i]),scx(x3[i+1]),scy(y3[i+1]));

}

palert:el(50.0,-150.0);

for(i=0;i<=4;i++)

{ x4[i]=affinex(x3[i],y3[i],1.0);

y4[i]=affiney(x3[i],y3[i],1.0);

delay(30000);

}

for(i=0;i<=3;i++)

{ line(scx(x4[i]),scy(y4[i]),scx(x4[i+1]),scy(y4[i+1]));

}

getch();

closegraph();

}

子程序affine.h:

double sin(),cos();

double xmax=639.0,ymax=399.0;

double f[3][3],xx,yy;

scx(xj)

double xj;

{ int x;

x=(int)(xj+xmax/2);

return(x);

}

scy(yi)

double yi;

{ int y;

y=ymax-(int)(yi+(ymax/2));

return(y);

}

palert:el(dx,dy)

double dx,dy;

{ f[0][0]=1.0;f[0][1]=0.0;f[0][2]=0.0;

f[1][0]=0.0;f[1][1]=1.0;f[1][2]=0.0;

f[2][0]=dx;f[2][1]=dy;f[2][2]=1.0;

}

rotate(theta)

double theta;

{ double th;

th=theta/180*3.1415927;

f[0][0]=cos(th);f[0][1]=sin(th);f[0][2]=0.0;

f[1][0]=-sin(th);f[1][1]=cos(th);

f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0;

}

scale(ss)

double ss;

{ f[0][0]=ss;f[0][1]=0.0;f[0][2]=0.0;

f[1][0]=0.0;f[1][1]=ss;f[1][2]=0.0;

f[2][0]=0.0;f[2][1]=0.0;f[2][2]=1.0;

}

axis()

{ line(scx(0),scy(-ymax/2),scx(0),scy(ymax/2));

line(scx(-xmax/2),scy(0.0),scx(xmax/2),scy(0.0));

}

affinex(x,y,d)

double x,y,d;

{ xx=x*f[0][0]+y*f[1][0]+d*f[2][0];

return(xx);

}

affiney(x,y,d)

double x,y,d;

{ yy=x*f[0][1]+y*f[1][1]+d*f[2][1];

return(yy);

}

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>