首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • J2SE中怎么画抛物线和双曲线
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 21:29:14 楼主
      要做一个数学函数发生器
      要求:至少包含直线(Y=AX+B)以及椭圆,抛物线,双曲线四种函数
      系数可任意输入
      有可变横纵座标(这是要做成什么样子,不懂)
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 21:29:171楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【voidtanq】截止到2008-07-01 21:29:24的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                       
    结贴的总数量:0                        结贴的总分数:0                       
    无满意结贴数:0                        无满意结贴分:0                       
    未结的帖子数:0                        未结的总分数:0                       
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 21:49:352楼 得分:0
    去看看 jasperReport 的使用吧! 当然 jfreeChat 也行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 21:58:053楼 得分:0
    引用 2 楼 java2000_net 的回复:
    去看看 jasperReport 的使用吧! 当然 jfreeChat 也行


    当成作业交上去,不及格
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yifuzhiming
    • 等级:
    发表于:2008-07-01 22:02:204楼 得分:0
    好难啊,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 22:11:365楼 得分:0
    任务很急,周五就得完成,请紫竹兄多说点吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • FL1429
    • 等级:
    发表于:2008-07-01 22:25:326楼 得分:0
    本人正在做贪吃蛇游戏..其中也用到了画图...

    你在JPanel上添加一个Canvas(画布).....

    然后调用Graphics类的draw...方法...实现画图...根据你的需要改变参数就ok了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 22:29:087楼 得分:0
    我只找到了画圆形,矩形,直线的函数,
    这个抛物线不知该怎么画。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 22:37:548楼 得分:0
    知道画点就行了,最主要的就是进行坐标转换,可以编写一个坐标类,将x,y的坐标点转换为画布上的点,然后将点画出来.剩下的就是在x的一个取值范围内根据函数算y值,将x,y传给坐标类画点,这样什么函数都能画
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • FL1429
    • 等级:
    发表于:2008-07-01 22:47:089楼 得分:0
    引用 7 楼 voidtanq 的回复:
    我只找到了画圆形,矩形,直线的函数,
    这个抛物线不知该怎么画。


    抛物线不就是圆弧吗...

    用这个不就行了...

    drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
              绘制一个覆盖指定矩形的圆弧或椭圆弧边框。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 22:47:4710楼 得分:0
    怎么画点呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 23:15:2211楼 得分:0
    Graphics类没有画点的方法,可以用画线的方法drawLine(int x1, int y1, int x2, int y2)来画点,只要x2=x1,y2=y1就行了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-01 23:20:0012楼 得分:0
    谢谢大家,看看今晚能不能做出来
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-02 14:33:5013楼 得分:0
    Java code
    public class Test3 { public static void main(String[] args) { TriFunc tri = new TriFunc(); // 生成一块25×100的画布 Canvas canvas = new Canvas(25, 100); // 画sin曲线,周期为2 tri.drawSin(canvas, 2.0); canvas.printCanvas(); System.out.println(); canvas.reset(); // 画cos曲线,周期为2 tri.drawCos(canvas, 2.0); canvas.printCanvas(); } } class TriFunc { /** * 画sin曲线 * @param canvas 画布 * @param period 曲线周期 */ public void drawSin(Canvas canvas, double period) { char[][] chars = canvas.getCanvas(); // x 轴的比率 double xRatio = (2 * period * Math.PI) / (canvas.getWidth() - 1); // y 轴的放大倍率 int yMulti = (canvas.getHeight() - 1) / 2; for(int i = 0; i < canvas.getWidth(); i++) { // 将数组索引映射为横坐标值 double k = (i - canvas.getWidth() / 2) * xRatio; // 将sin值映射为数组索引 int h = yMulti - (int)Math.round(Math.sin(k) * yMulti); chars[h][i] = Canvas.FILL_CHAR; } } /** * 画cos曲线 * @param canvas 画布 * @param period 曲线周期 */ public void drawCos(Canvas canvas, double period) { char[][] chars = canvas.getCanvas(); double xRatio = (2 * period * Math.PI) / (canvas.getWidth() - 1); int yMulti = (canvas.getHeight() - 1) / 2; for(int i = 0; i < canvas.getWidth(); i++) { double k = (i - canvas.getWidth() / 2) * xRatio; int h = yMulti - (int)Math.round(Math.cos(k) * yMulti); chars[h][i] = Canvas.FILL_CHAR; } } } class Canvas { private int height; private int width; private char[][] canvas; // 填充字符 public static char FILL_CHAR = '#'; // 空白字符 public static char BLANK_CHAR = ' '; /** * 构建一块画布 * @param height * @param width */ public Canvas(int height, int width) { // 由于需要画坐标轴,所以得采用奇数 this.height = height % 2 == 0 ? height + 1 : height; this.width = width % 2 == 0 ? width + 1 : width; init(); } /** * 初始化画布 */ private void init() { this.canvas = new char[height][width]; for(int i = 0; i < height; i++) { for(int j = 0; j < width; j++) { canvas[i][j] = BLANK_CHAR; } } addAxis(); } /** * 添加坐标轴 */ private void addAxis() { // 添加横坐标 int y = height / 2; for(int x = 0; x < width; x++) { canvas[y][x] = '-'; } // 添加纵坐标 int xx = width / 2; for(int yy = 0; yy < height; yy++) { canvas[yy][xx] = '|'; } // 添加原点 canvas[y][xx] = '+'; } /** * 输出画布 */ public void printCanvas() { for(int i = 0; i < height; i++) { for(int j = 0; j < width; j++) { System.out.print(canvas[i][j]); } System.out.println(); } } /** * 清空画布 */ public void reset() { init(); } public int getHeight() { return height; } public int getWidth() { return width; } public char[][] getCanvas() { return canvas; } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-02 14:34:1114楼 得分:0
    Java code
    #### | #### ## ## | ## ## # # | # # # # | # # # # | # # # # | # # # # | # # | # # | # # # # | # # # # |# # | #------------------------#------------------------#------------------------#------------------------# | # #| # # # # | # # # # | # # | # # | # # # # | # # # # | # # # # | # # # # | # # ## ## | ## ## #### | #### ### ##### ### ## ## | ## ## # # | # # # # | # # # # | # # | # # | # # # # | # # # # | # # | # # | # # # # | # # --------------------------------------------------+-------------------------------------------------- # # | # # # # | # # | # # | # # # # | # # # # | # # | # # | # # # # | # # # # | # # ## ## | ## ## ##### | #####
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-02 17:29:2315楼 得分:0
    学习,在学习中成长,在鄙视中成长。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-05 11:28:2816楼 得分:0
    救命啊 X,Y是全局变量,他们的值怎么传不到public void paint(Graphics g)这个函数里啊
    public void actionPerformed(ActionEvent e)//监听
    {if(e.getActionCommand()=="确定")
      {
      A=Integer.valueOf(tx.getText());
        B=Integer.valueOf(ty.getText());
        X=Integer.valueOf(ty.getText());
        Y=Integer.valueOf(ty.getText());}
    public void paint(Graphics g)
    {  System.out.print(X/Y);//此句每次输出1
    if(X>Y)
    {
    a1=a1-X/Y*d;a3=a3+X/Y*d;
    }
    if(X <Y)
    {
    b2=b2+Y/X*d;b4=b4-Y/X*d;
    }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-05 13:18:5517楼 得分:0
    服了 火龙果
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-05 19:36:5118楼 得分:0
    jfreeChat

    火龙比较强悍
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved