当前位置: 首页 > 面试题库 >

如何在Java 2D矩阵中将双精度值表示为圆形

巴星华
2023-03-14
问题内容

所以我想写一个矩阵浏览器,使我能够重新排序矩阵的行和列。对于这个海豚,我使用了Jtable类。现在我遇到的问题是,通过查看双精度值很难对矩阵进行重新排序,因此我想打印的矩阵不是带双精度值,而是带圆圈的圆,其中圆的半径代表该值。这样我就可以更快地分辨出大值和小值之间的区别。

有人知道如何使用JTable或任何表类将此双精度值转换为实心圆吗?


问题答案:

这是一个自定义渲染器的示例,该渲染器实现了Icon界面以进行绘制。这种方法可以更轻松地控制文本和图标的相对位置。请注意,渲染器根据间隔中归一化值的假设进行缩放[0, 1);您可能想查询数据模型的最小值和最大值。

class DecRenderer extends DefaultTableCellRenderer implements Icon {

    private static final int SIZE = 32;
    private static final int HALF = SIZE / 2;
    DecimalFormat df;

    public DecRenderer(DecimalFormat df) {
        this.df = df;
        this.setIcon(this);
        this.setHorizontalAlignment(JLabel.RIGHT);
        this.setBackground(Color.lightGray);
    }

    @Override
    protected void setValue(Object value) {
        setText((value == null) ? "" : df.format(value));
    }

    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {
        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(
            RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setColor(Color.blue);
        double v = Double.valueOf(this.getText());
        int d = (int)(v * SIZE);
        int r = d / 2;
        g2d.fillOval(x + HALF - r, y + HALF - r, d, d);
    }

    @Override
    public int getIconWidth() {
        return SIZE;
    }

    @Override
    public int getIconHeight() {
        return SIZE;
    }
}


 类似资料:
  • 我是Matlab新手,所以这应该是一个简单的问题。我有一个带有几个特定像素的图像,我需要从中获取红色RGB分量,求和,并将结果存储到一个变量中。默认情况下,这些值的类型为uint8,因此总和不能超过255。我尝试使用double()的每个组合将R值转换为double,但似乎没有任何效果。下面是从终端复制的实际情况:(所有像素的R值都在200以上) 我做错了什么?我不能将这些值转换为双精度值吗?

  • 问题内容: 我必须在Java中创建一个2D矩阵(由双精度值组成)以及一个1D向量。应该可以访问单个行和列以及单个元素。此外,它应该是线程安全的(线程同时写入)。也许以后我也需要一些矩阵运算。 哪种数据结构最适合?只是2D数组还是TreeMap?还是有什么很棒的外部库? 问题答案: 您应该将Vector用于2D数组。这是 线程安全的 。 如果这是您的矩阵索引 00 01 10 11 您可以像这样获得

  • 本文向大家介绍如何在R中将矩阵列转换为向量列表?,包括了如何在R中将矩阵列转换为向量列表?的使用技巧和注意事项,需要的朋友参考一下 如果要使用矩阵的列作为向量,则可以将它们转换为向量列表。要将矩阵列转换为向量列表,我们首先需要将矩阵转换为数据框,然后才能将其读取为列表。这可以作为as.list(as.data.frame(matrix_name))完成。 示例 考虑下面的矩阵- 将矩阵M列转换为向

  • 问题内容: 例如,我有变量3.545555555,我希望将其截断为3.54。 问题答案: 如果您希望将其用于显示目的,请使用: 如果需要进行计算,请使用:

  • 我想用一个小数点和一个小数位的格式将任何双精度四舍五入为双精度,这样29575.347434将是2.3。 我试着用decimalFormat做这个,但当我试着我只得到了一个29575.3格式的字符串,带有一个,我不知道如何在保留值为双精度的同时去掉所有小数点。

  • 如何分析Weka中的混淆矩阵,以获得准确度?我们知道,由于数据集不平衡,精度不准确。混淆矩阵如何“确认”准确性? 示例:a)准确率96.1728% b) 准确率:96.8% 等...