java dda画线实例

import java.awt.*;
import java.awt.event.*;
import java.util.*;


public class ddaLine extends Frame{
  
  int dif=0;  
  public static void main(String[] args){
      ddaLine ddaline=new ddaLine();
 ddaline.xrealline(30,30,500,200);
 ddaline.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){System.exit(0);}
 });
   }
  
  public ddaLine(){
      this.setResizable(false);
 this.setSize(700,400);
 this.setVisible(true);    
   }
       
  public void paintpix(int x,int y){     
Graphics g=getGraphics();
g.setColor(Color.RED);
g.fillOval(x,y,1,1);
  }
  
  Graphics g=getGraphics(); 
  public void xrealline(int x1,int y1,int x2,int y2){
     double y=y1;
double delta=(double)(y2-y1)/(x2-x1);
if(Math.abs(delta)<=1){
   if(x1>x2){dif=-1;}
else{dif=1;}
 
if(x1>x2){   
for(int i=x1;i>=x2;i+=dif){
  paintpix(i,(int)Math.round(y));
  y-=delta;
}}
 else{
    for(int i=x1;i<=x2;i+=dif){
   paintpix(i,(int)Math.round(y));
y+=delta;
}  
 }  
   }else{
      yrealline(x1,y1,x2,y2);
   }}
  
   public void yrealline(int x1,int y1,int x2,int y2){
      if(x1>x2){dif=-1;}
 else{dif=1;}
 double y=y1;
 double delta=(double)(y2-y1)/(x2-x1);
 
 if(x1>x2){
    for(int i=x1;i>=x2;i+=dif){
  paintpix((int)Math.round(y),i);
  y-=delta;
}
 }else{
    for(int i=x1;i<=x2;i+=dif){
   paintpix((int)Math.round(y),i);
y+=delta;
}
 }
   } 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值