彩色图象的二维变形(1)(3)
2014-12-15 01:05
导读:}; /*多边形各顶点的信息*/ 注意以上注释中边的下端点指纵坐标值较小的一端,另一端即为上端点。 以下则为算法的详细步骤: 1.数据准备 对于每一条非水
}; /*多边形各顶点的信息*/
注意以上注释中边的下端点指纵坐标值较小的一端,另一端即为上端点。
以下则为算法的详细步骤:
1.数据准备
对于每一条非水平边QiQi 1,设Qi与Qi 1的坐标分别为(Xi,Yi)
及(X
i 1,Yi 1);其反变换坐标为(Rxi,Ryi)及(RXi 1,RYi 1)。
则按以下各式对此边的信息结构各域进行填写:
X=Xi,Yi<Yi 1
Xi 1,Yi>Yi 1
RX=RXi,Yi<Yi 1
RXi 1,Yi>Yi 1
RY=RYi,Yi<Yi 1
RYi 1,Yi>Yi 1
dx=(xi-xi 1)/(yi-yi 1)
Ymax=max(yi,yi 1)
dRx=(Rxi-Rxi 1)/(yi-yi 1)
dRy=(Ryi-Ryi 1)/(yi-yi 1)
然后将其插入链表ET[min(yi,yi 1)]中。活化边表AEL置空。
当前扫描线纵坐标y取为0,即最小序号。
2.扫描转换
反复作以下各步,直到y等于YResolution
(1)若ET[y]非空,则将其内所有边插入AEL。
(2)若AEL非空,则将其按X及dx的值从小到大排列各边,接(3);否则转
(3)将AEL内各边按排列顺序两两依次配对。则沿当前扫描线Y组成若干水平区间[xLeft,xRight],其左右端点的反变换坐标分别为:(lRx,lRy),(rRx,rRy)。则对于每一个这样的区间作以下各步:
dRxx=(lRx-rRx)/(xleft-xRight)
dRyx=(lRy-rRy)/(xleft-xRight)
又设原图像已读入二维数组Image之中。令XX=xleft, Rxy=lRx, Ryx=lRy则对于每个满足xLeft≤xX≤xRight的坐标为(xx,y)的像素,其反变换坐标(Rxy,Ryx)可按下式增量计算:
Rxx=Rxx dRxx
Ryx=Ryx dRyy
用(Rxx,Ryx)在数组Image之中插值,(参见文献[1]),按所得颜色值显示该像素。然后边x=x 1,计算下一像素。
(4)将AEL中满足y=Ymax的边删去,然后按下式调整AEL中各边的信息。
X=X dx
Rx=Ry dRx
Ry=Ry dRy
(5)y=y 1,重复下一点。共2页: 1 [2] 下一页 论文出处(作者):
文本方式下图形提示界面制作
在TVGA上实现全屏幕动画