java怎么生成距离相等的点 java怎么生成距离相等的点 谢谢大家。是x、y坐标的麻烦了 最好有代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是说根号x,y坐标的平方相等的意思吧?最先肯定要一个确定的点吧?你再随机或按你自己的意思生成一个x或y再算出另一个坐标不就行了...每生成一个放到一个数组里面... sunyi 嘿嘿 谢谢 又要麻烦你呢就是上个程序 我的船的坐标不是在一个圆上的吗?现在我想改成象大雁飞行时的样子,就是上面几个 点和点之间距离相等,中间也有,下面也有 分几排,各个点之间无论上下或者左右都是等距离的 麻烦了 先设置一个基准点,和一个基准长度。然后就剩下code了~~ 把点的位置固定下来就可以了啊,用applet写吧 [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] 求助:java错误提示:exception in thread“main” java.lang. 通信 请求帮助 这个程序怎么运行? 怎么样取出一个数据表中的字段的数据与非数据库中的数据比较 Siemens无线JAVA应用大赛 沙龙活动正在CSDN嘉宾聊天室进行 为什么不显示。 请问如何消去java.awt.window中的“警告 Applet 窗口”字样??!! 在borland主页上下的教程,按照步骤做出错! java制作的MP3播放器,如何实现时间轴功能 嵌套HashMap 存放三元组的问题 学习PHP对学习Java入门有帮助吗?
最先肯定要一个确定的点吧?
你再随机或按你自己的意思生成一个x或y再算出另一个坐标不就行了...
每生成一个放到一个数组里面...
就是上个程序 我的船的坐标不是在一个圆上的吗?现在我想改成象大雁飞行时的样子,就是上面几个 点和点之间距离相等,中间也有,下面也有 分几排,各个点之间无论上下或者左右都是等距离的 麻烦了
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]