首页 > 编程语言 >java的简单绘图

java的简单绘图

时间:2023-11-16 20:11:54浏览次数:37  
标签:java int 50 height 60 width g2d 绘图 简单

java简单绘图


import javax.swing.*;
import java.awt.*;

public class Main extends JPanel {
private static final int N = 10;
private static final double P = 0.34;

@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    int width = getWidth();
    int height = getHeight();
    int xOffset = width / 2;
    int yOffset = height / 2;
    g2d.setColor(Color.black);
    g2d.drawLine(50,height-50,width-50,height-50);
    g2d.drawLine(width-60,height-60,width-50,height-50);
    g2d.drawLine(width-60,height-40,width-50,height-50);
    g2d.drawLine(40,60,50,50);
    g2d.drawLine(60,60,50,50);
    g2d.drawLine(50,50,50,height-50);
    g2d.drawString("次数n",width-60,height-20);
    g2d.drawString("期望E",10,50);
    double ex=N*P;
    int jg=(width-50)/20;
    for(int i=0;i<19;i++){
        g2d.drawLine(50+i*jg,height-45,50+i*jg,height-55);
        String kb=String.format("%d",i);
        int fontwidth=g2d.getFontMetrics().stringWidth(kb)/2;
        g2d.drawString(kb,50+i*jg-fontwidth, height-20);
    }
    jg=(height-50)/20;
    for(int i=0;i<19;i++){
        g2d.drawLine(45,height-50-i*jg,55,height-50-i*jg);
        double kbb=0.2+i*0.01;
        String kb=String.format("%.2f",kbb);
        int fontwidth=g2d.getFontMetrics().stringWidth(kb);
        int fontheight=g2d.getFontMetrics().getHeight()/3;
        g2d.drawString(kb,40-fontwidth,height-50-i*jg+fontheight);
    }
    g2d.setStroke(new BasicStroke(5));
    g2d.setColor(Color.cyan);
    g2d.fillRect(50+10*(width-50)/20-6,height-50-14*(height-50)/20+6,5,5);
    Stroke dash = new BasicStroke(2.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 3.5f, new float[] { 15, 10, }, 0f);
    g2d.setColor(Color.yellow);
    g2d.setStroke(dash);
    g2d.drawLine(50+10*(width-50)/20-6,height-50-14*(height-50)/20+20,50+10*(width-50)/20-6,height-55);
    g2d.drawLine(50+10*(width-50)/20-20,height-50-14*(height-50)/20+6,50,height-50-14*(height-50)/20+6);
    System.out.println("期望: 0.34");
}
private double binomialProbability(int n, int k, double p) {
    return combination(n, k) * Math.pow(p, k) * Math.pow(1 - p, n - k);
}

private long combination(int n, int k) {
    if (k == 0 || k == n) {
        return 1;
    }
    if (k > n - k) {
        k = n - k;
    }
    long result = 1;
    for (int i = 1; i <= k; i++) {
        result *= (n - i + 1);
        result /= i;
    }
    return result;
}

public static void main(String[] args) {
    JFrame frame = new JFrame("Binomial Distribution Graph");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(800, 600);
    frame.add(new Main());
    frame.setVisible(true);
}

}

标签:java,int,50,height,60,width,g2d,绘图,简单
From: https://www.cnblogs.com/luo9tian/p/17837159.html

相关文章

  • C#使用SqlSugar操作MySQL数据库实现简单的增删改查
    ......
  • java的数据类型介绍
    1.js的数据类型分类基本数据类型:数值类型[整数、浮点型] ,布尔型(true,false),字符串2.复合数据类型:数组,对象3.特殊数据类型:nullundefined//以ox开头,表示一个16进制的数0x111//1+1*16+1*16*16//0开头,表示8进制//浮点数的写法4e5=4*10的5次方//布尔varb1=truevarb2......
  • JavaWeb--Reaponse设置响应数据功能介绍&完成重定向
    Response设置响应数据功能Response完成重定向重定向(Redirect):一种资源跳转方式*redirect一定地址是8080往后补的,一定要写全也可以是外部地址 路径问题: 动态获取虚拟目录//动态获取虚拟目录StringcontextPath=request.getContextPath();response.sendRedirect(con......
  • Java常见的输入输出流详解
    Java默认使用Unicode字符集来表示字符;Java语言中,中文字符所占的字节数取决于字符的编码方式,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK或Unicode编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字......
  • 【分享】javascript汉字转拼音库pinyin-pro
    ......
  • Java中的内部类
    内部类内部类的分类也可以分成两大类成员内部类(静态内部类、成员内部类)局部内部类(方法内部类、匿名内部类)区别如果定义在方法里面,该类就是为方法内部类或者是局部内部类如果定义在方法外面,该类就是为成员内部类,如果加上static静态修饰,则该类是为静态内部类......
  • JavaScript判断图片是否已经加载完毕的方法汇总_javascript技巧
    在网上有很多关于判断图片是否已经加载完毕的文章,但是有的浏览器并不适合,下面小编给大家分享一些有关JavaScript判断图片是否已经加载完毕方法汇总,具体内容如下所示:一.onload事件通过监听图片的onload事件,可以判断图片是否已经加载完成,兼容所有的浏览器(w3c推荐方法),代码示例如下......
  • Java登陆第八天——SQL之DCL
    SQL语句SQL概括起来可以分为以下四组。(都是SQL,因为功能的不同,为了更好学习划分了类别)DDL——数据定义语言。用于定义数据的结构。指的是增,删,改数据库DML——数据操作语言。用于检索或修改数据。指的是增,删,改数据DQL——数据查询语言。用于查询各种形式的数据。指的是查询......
  • 微服务 在 Java 代码中发送 http 请求(跨服务远程调用)
    1.注册RestTemplate对象到Spring容器中(Bean的注入只能放在配置类里,而启动类本身就是配置类)@SpringBootApplicationpublicclassOrderServiceApplication{publicstaticvoidmain(String[]args){SpringApplication.run(OrderServiceApplication.class,......
  • Java获取笔记本的wifi地址
    几个方法说明(来源网络,没有验证)isAnyLocalAddress方法当IP地址是通配符地址时返回true,否则返回false.这个通配符地址对于拥有多个网络接口(如两块网卡)的计算机非常拥有。使用通配符地址可以允许在服务器主机接受来自任何网络接口的客户端连接。IPv4的通配符地址是0.0.0.0.IPv6的通......