图形学重点Chapter 3
发布时间
阅读量:
阅读量
直线光栅化方法
1、DDA法:
根据直线的基本微分方程\frac{dy}{dx} = k,其中k为常数。直线方程还可以表示为\frac{\Delta{y}}{\Delta{x}} = \frac{y_2 - y_1}{x_2-x_1} = k
(1)David.F.Roger提出:
若已知第i个点的坐标,可通过步长StepX和StepY计算得到第i+1个点的坐标(x+StepX,y+StepY)。
StepX与StepY由直线的斜率k所决定,例如当k<1时,StepX = 1,StepY = k,并将计算出的坐标进行四舍五入以确定光栅点的具体位置。
(2)James.D.Foley提出:
该算法与上述方法相似,但存在一定的差异:前一种方法所生成的直线点并非对原直线的最佳近似;而此方法仅适用于0~45度范围内的坐标系,并未对直线端点不位于像素点的情况进行详细分析。
(3)改进后的DDA算法(首点矫正):
void DDALine (
float xs, ys; //起点
float xe, ye; //终点
int value) //赋给线上的象数值
{
int n, ix, iy, idx, idy;
int Flag; //插补方向标记
int Length; //插
全部评论 (0)
还没有任何评论哟~
