java怎么生成距离相等的点  谢谢大家。
是x、y坐标的
麻烦了 最好有代码

解决方案 »

  1.   

    你是说根号x,y坐标的平方相等的意思吧?
    最先肯定要一个确定的点吧?
    你再随机或按你自己的意思生成一个x或y再算出另一个坐标不就行了...
    每生成一个放到一个数组里面...
      

  2.   

    sunyi 嘿嘿 谢谢 又要麻烦你呢
    就是上个程序 我的船的坐标不是在一个圆上的吗?现在我想改成象大雁飞行时的样子,就是上面几个 点和点之间距离相等,中间也有,下面也有 分几排,各个点之间无论上下或者左右都是等距离的 麻烦了
      

  3.   

    先设置一个基准点,和一个基准长度。然后就剩下code了~~
      

  4.   

    把点的位置固定下来就可以了啊,用applet写吧
      

  5.   

    [code=Java]import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.Point;
    import java.util.Timer;
    import java.util.TimerTask;import javax.swing.JFrame;
    import javax.swing.JPanel;public class Frame5 extends JFrame {

    private Point2D[] points;
    private MyPanel pnlMain;
    private Timer timer;
    private TimerTask task;
    private Point pos;
    private int timeout;

    public Frame5() {
    initialize();
    }

    private void initialize() {
    points = new Point2D[15];
    pos = new Point(0,0);
    timeout = 0;
    //生成传说中的貌似等距离点
    for (int i=0;i<3;i++) {
    for (int j=0;j<3;j++) {
    points[i*3+j] = new Point2D(j*2+i, i*1.7320508076);
    }
    }
    for (int i=3;i<5;i++) {
    for (int j=0;j<3;j++) {
    points[i*3+j] = new Point2D(j*2+(4-i), i*1.7320508076);
    }
    }
    for (Point2D p:points) {
    System.out.println(p.toString());
    }
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(300, 300);
    this.setLocationRelativeTo(null);
    Container cont = this.getContentPane();
    pnlMain = new MyPanel();
    cont.add(pnlMain);
    timer = new Timer();
    task = new TimerTask() {
    public void run() {
    timeout++;
    pos.x++;
    pnlMain.repaint();
    if (timeout > 200) {
    timer.cancel();
    }
    }
    };
    timer.schedule(task, 0, 100);
    }

    public static void main(String[] args) {
    Frame5 frame = new Frame5();
    frame.setVisible(true);
    }

    class MyPanel extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setColor(Color.GREEN);
    for (Point2D point : points) {
    g.fillRect((int)Math.round(point.x*10)+pos.x, 
    (int)Math.round(point.y*10)+pos.y, 3, 3);
    }
    }
    }
    }我又来了,楼主看下吧,
    这个程序要配合你之前那个程序的Point2D类才行[/code]