首页 > 其他分享 >挣值分析

挣值分析

时间:2024-04-08 18:56:31浏览次数:21  
标签:分析 20 int height g2d drawString 挣值 margin

没有具体计算

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

public class EarnValueAnalysis extends JPanel {
    private double[] EV = {9, 31, 47.5};
    private double[] PV = {10, 35, 50};
    private double[] AC = {10, 36, 54};

    public EarnValueAnalysis() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 300);
        frame.getContentPane().add(this);
        frame.setVisible(true);
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        int margin = 30;
        int width = getWidth();
        int height = getHeight();

        int[] xPoints = {50, 150, 250};
        int[] yPointsEV = {200 - (int) (EV[0] * 2), 200 - (int) (EV[1] * 2), 200 - (int) (EV[2] * 2)};
        int[] yPointsPV = {200 - (int) (PV[0] * 2), 200 - (int) (PV[1] * 2), 200 - (int) (PV[2] * 2)};
        int[] yPointsAC = {200 - (int) (AC[0] * 2), 200 - (int) (AC[1] * 2), 200 - (int) (AC[2] * 2)};

        g2d.setColor(Color.BLACK);

        // 绘制 x 轴
        g2d.drawLine(margin, height - margin, width - margin, height - margin);
        // 绘制 y 轴
        g2d.drawLine(margin, margin, margin, height - margin);

        // 绘制 x 轴标签
        g2d.drawString("时间(周)", width - margin - 10, height - margin + 20);
        // 绘制 y 轴标签
        g2d.drawString("钱(元)", margin - 20, margin - 10);

        // 绘制 x 轴刻度
        g2d.drawString("1", margin + 45, height - margin + 15);
        g2d.drawString("2", margin + 145, height - margin + 15);
        g2d.drawString("3", margin + 245, height - margin + 15);

        // 绘制 y 轴刻度
        g2d.drawString("10", margin - 20, height - margin - 20);
        g2d.drawString("20", margin - 20, height - margin - 80);
        g2d.drawString("30", margin - 20, height - margin - 140);
        g2d.drawString("40", margin - 20, height - margin - 200);
        g2d.drawString("50", margin - 20, height - margin - 260);
        g2d.drawString("60", margin - 20, height - margin - 320);

        g2d.setColor(Color.RED);
        g2d.setStroke(new BasicStroke(2));
        g2d.drawPolyline(xPoints, yPointsEV, 3);

        g2d.setColor(Color.GREEN);
        g2d.setStroke(new BasicStroke(2));
        g2d.drawPolyline(xPoints, yPointsPV, 3);

        g2d.setColor(Color.BLUE);
        g2d.setStroke(new BasicStroke(2));
        g2d.drawPolyline(xPoints, yPointsAC, 3);

        // 绘制左上角的线条含义说明
        g2d.setColor(Color.BLACK);
        g2d.drawString("EV - 红色", margin + 10, margin + 30);
        g2d.drawString("PV - 绿色", margin + 10, margin + 45);
        g2d.drawString("AC - 蓝色", margin + 10, margin + 60);

        g2d.setColor(Color.BLACK);
        g2d.setFont(new Font("宋体", Font.BOLD, 12));
        g2d.drawString("", xPoints[0], yPointsEV[0]);
        g2d.drawString("", xPoints[0], yPointsPV[0]);
        g2d.drawString("", xPoints[0], yPointsAC[0]);

        g2d.drawString("净值分析", width / 2 - 40, height - margin + 40);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(EarnValueAnalysis::new);
    }
}

 

标签:分析,20,int,height,g2d,drawString,挣值,margin
From: https://www.cnblogs.com/2351920019xin/p/18122307

相关文章

  • SAST-数据流分析方法-理论
    引言众所周知,数据流分析是实现污点分析的一种常用技术数据流分析分为过程内的数据流分析与过程间的数据流分析。前者是对一个方法体内的数据流分析,主要是基于CFG分析,不涉及方法调用;后者是基于不同方法间的数据流分析,主要是基于ICFG+CG分析,会涉及方法调用。一、过程内数据流分析......
  • MySQL 主从 AUTO_INCREMENT 不一致问题分析
    本文介绍了MySQL5.7中常见的replaceinto操作造成的主从auto_increment不一致现象,一旦触发了主从切换,业务的正常插入操作会触发主键冲突的报错提示。一、问题描述1.1问题现象在MySQL5.7版本中,REPLACEINTO操作在表存在自增主键的情况下,可能会出现表的auto_increm......
  • TSINGSEE青犀边缘计算AI智能分析网关V4客流统计算法的配置步骤及使用
    TSINGSEE青犀AI智能分析网关V4内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为、烟火等实时检测分析,上报识别结果,并能进行语音告警播放。硬件支持RTSP、GB28181协议、以及厂家私有协议接入,可兼容市面上常见的厂家品牌设备,可兼容IPC、网络音柱等。同时也支持智能......
  • TSINGSEE青犀边缘计算AI智能分析网关V4客流统计算法的配置步骤及使用
    TSINGSEE青犀AI智能分析网关V4内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为、烟火等实时检测分析,上报识别结果,并能进行语音告警播放。硬件支持RTSP、GB28181协议、以及厂家私有协议接入,可兼容市面上常见的厂家品牌设备,可兼容IPC、网络音柱等。同时也支持智......
  • 贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
    原文链接:http://tecdat.cn/?p=22702最近我们被客户要求撰写关于贝叶斯分位数回归的研究报告,包括一些图形和统计输出。贝叶斯回归分位数在最近的文献中受到广泛关注,本文实现了贝叶斯系数估计和回归分位数(RQ)中的变量选择,带有lasso和自适应lasso惩罚的贝叶斯摘要还包括总结结果、......
  • 视频监控汇聚平台智能边缘分析一体机视频智能分析平台室内消防逃生通道占用检测算法
    随着城市化进程的不断推进,人口密集的建筑物中,室内消防逃生通道的畅通显得尤为重要。然而,在紧急情况下,如火灾或其他灾害事件,通道被占用可能导致人员无法及时安全撤离,增加事故风险。为此,智能边缘分析一体机室内消防逃生通道占用检测算法应运而生,以确保逃生通道的畅通和人员的安全......
  • 智能视频监控平台智能边缘分析一体机视频监控汇聚平台区域人数统计检测
    智能边缘分析一体机的区域人数统计检测算法是一种集成了高级视频分析技术的智能系统,它在人员流动检测和监控领域中扮演着至关重要的角色。这种算法不仅能够实时准确地统计特定区域内的人数,还能够优化资源配置,检测异常行为,从而提高安全防范的效率和准确性。区域人数统计算法的......
  • 开源数据库OpenGauss的SQL解析源码分析
    开源数据库OpenGauss的SQL解析源码分析OpenGauss数据库体系概述openGauss是关系型数据库,采用客户端/服务器,单进程多线程架构;支持单机和一主多备部署方式,同时支持备机可读、双机高可用等特性。从代码结构体系结构的角度来说,oepnGauss的第一个组成部分是通信管理。openGa......
  • R语言生物群落(生态)数据统计分析与绘图
    暨融合《R语言基础》、《tidyverse数据清洗》、《多元统计分析》、《随机森林模型》、《回归及混合效应模型》、《结构方程模型》、《统计结果作图》七合一版本R语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析......
  • Elasticsearch 配置与测试分析器 (2)
    一.配置文本分析器(Configuretextanalysis) 默认情况下,Elasticsearch使用standard分析器来进行文本分析,如果使用该分析器,则不用额外的配置。如果不满足,可以使用其它内置分析器,也可以创建自定义的分析器更好的控制,通常在生产实战中都是自定义分析器,方便更好扩展。 ......