Advertisement

图形学重点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)

还没有任何评论哟~