新手提问

lbfxxx 2010-04-04 11:18:19
现在我有这样的数据
a(1,2,3,4,5,6,7)
b(1,5,3,5,1,2,3)
现在想画一个坐标图
a为x轴,b为y轴
表示a,b之间的关系
请问该怎么画,
希望知道的大虾详解,
谢谢。。
...全文
111 9 打赏 收藏 转发到动态 举报
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbfxxx 2010-04-06
  • 打赏
  • 举报
回复
感谢几位的回答,afunx的回答很有用,谢谢
amdgaming 2010-04-04
  • 打赏
  • 举报
回复
数学没学过啊,呵呵
rumlee 2010-04-04
  • 打赏
  • 举报
回复
是在是没有看懂什么意思。
afunx 2010-04-04
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
/**
*
* @author afunx
*/
public class DrawTest {

public static void main(String args[]){
EventQueue.invokeLater(new Runnable(){
public void run(){
DrawFrame frame = new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}

class DrawFrame extends JFrame{
public DrawFrame(){
setTitle("DrawTest");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
DrawComponent component = new DrawComponent();
add(component);
}
public static final int DEFAULT_WIDTH = 400;
public static final int DEFAULT_HEIGHT = 450;
}
//30像素为一个单位距离
class DrawComponent extends JComponent{
private int[] a = {0,1,2,3,4,5,6,7};//a中加一个0为坐标原点的x坐标
private int[] b = {0,1,5,3,5,1,2,3};//b中加一个0为坐标原点的y坐标
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
Double Yx = 50.0;//y轴的x坐标
Double Yy = 50.0;//y轴的y坐标
Double Xx = 350.0;//x轴的x坐标
Double Xy = 350.0;//x轴的y坐标
Double Ox = 50.0;//原点O的x坐标
Double Oy = 350.0;//原点O的y坐标
g2.draw(new Line2D.Double(Ox,Oy,Yx,Yy));//画x轴
g2.draw(new Line2D.Double(Ox,Oy,Xx,Xy));//画y轴
//画y轴的箭头:
g2.draw(new Line2D.Double(Yx-5,Yy+5,Yx,Yy));
g2.draw(new Line2D.Double(Yx+5,Yy+5,Yx,Yy));
//画x轴的箭头:
g2.draw(new Line2D.Double(Xx-5,Xy-5,Xx,Xy));
g2.draw(new Line2D.Double(Xx-5,Xy+5,Xx,Xy));
//标出O,X,Y:
g2.drawString("O", 40, 360);
g2.drawString("X", 360, 360);
g2.drawString("Y", 40, 40);

for(int x=1;x<350/30-1;x++){
g2.drawString(Integer.toString(x), 50+30*x, 360);
}
for(int y=1;y<350/30-1;y++){
g2.drawString(Integer.toString(y), 40, 350-30*y );
}
//实际坐标(x,y)与图上坐标(X,Y)的映射关系为:
//X=50+30*x,Y=350-30*y,30表示一个单位长度用30像素表示
//JAVA中X坐标正方向为右与平时所绘函数相同,所以“+”,Y坐标正方向为左与平时所绘函数相反,所以。“-”
//(50,350)为程序中原点的坐标
for(int i=0;i<a.length-1;i++){
g2.draw(new Line2D.Double(50+a[i]*30, 350-b[i]*30,50+a[i+1]*30,350-b[i+1]*30));
}
}
}
sharke118 2010-04-04
  • 打赏
  • 举报
回复
你在网上去下个jfreechart包 这个包是专门画图表的 可以画各种各样的图表 这里有参考教程:

http://blog.csdn.net/hapylong/archive/2007/05/31/1633001.aspx
24K純帥 2010-04-04
  • 打赏
  • 举报
回复
不懂啊
czw8528 2010-04-04
  • 打赏
  • 举报
回复
这个在MATLAB上好做的!
sunnypchen 2010-04-04
  • 打赏
  • 举报
回复
Java呀
只会用VC画
路过~~~
liu_liyang 2010-04-04
  • 打赏
  • 举报
回复
不明白什么意思
相关推荐

62,567

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告