欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

使用DDA算法画出给定两点的直线,dda算法,public class

来源: javaer 分享于  点击 42515 次 点评:90

使用DDA算法画出给定两点的直线,dda算法,public class


public class DrawLineByDDA extends JPanel {    private float dx, dy, length,x, y;    private int zx,zy;    private int x0, y0, x1, y1;    private Color color;    private Logger logger=Logger.getLogger(this.getClass().getName());    /**     * Constructor     */    public DrawLineByDDA(int x0, int y0, int x1, int y1, Color color) {        this.x0=x0;        this.y0=y0;        this.x1=x1;        this.y1=y1;        this.color=color;    }    @Override    public void paint(Graphics g) {        super.paint(g);        g.setColor(color);        zx = Math.abs(x1 - x0);        zy = Math.abs(y1 - y0);        logger.log(Level.INFO, "zx:"+zx+",zy:"+zy);        if (zx >= zy) {            length = zx;            logger.log(Level.INFO, "length:"+length);        } else {            length = zy;            logger.log(Level.INFO, "length:"+length);        }        dx = (x1 - x0) / length;        dy = (y1 - y0) / length;        logger.log(Level.INFO, "dx:"+dx+",dy:"+dy);        x = x0;        y = y0;        for (int i = 1; i < length; i++) {            logger.log(Level.INFO, "x:"+x+",y:"+y);            g.drawRect((int) (x + 0.5), (int) (y + 0.5), 0, 0);            x = x + dx;            y = y + dy;        }    }}//该片段来自于http://byrx.net
相关栏目:

用户点评