使用DDA算法画出给定两点的直线,dda算法,public class
分享于 点击 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
用户点评