首页 > 解决方案 > 所有象限的 DDA 算法

问题描述

我想知道如何编辑此 DDA。当我有这个值时: (x1 = 150,y1 = 20,x2 = 100,y2 = 80) 它工作得非常好,因为它在第一象限。

但是如果我想从另一个象限中栅格化线

因此,我无法将此算法编辑到所有 4 个象限。

public void rasterize(int x1, int y1, int x2, int y2, int color) {
        int x, y, krok;
        float dy, dx;
        dx = x2 - x1;
        dy = y2 - y1;

        if(Math.abs(dx)>Math.abs(dy)){
            krok=(int)(Math.abs(dx));
        } else {
            krok=(int)(Math.abs(dy));
        }
        dx = dx / (float)krok;
        dy = dy/ (float)krok;
        x=x1;
        y=y1;
        for(int i=1;i<=krok;i++){
            raster.setPixel(x, y, 0xffff00);
            x+=dx;
            y+=dy;
        }
}

标签: java

解决方案


推荐阅读