java - 使用 Java 绘制一维图

标签 java graphics

我以前从未将 Java 用于图形,所以我目前正在努力学习。

作为一项基本练习,我想将数组中包含的点绘制到数轴上,但不确定如何开始。

我正在做以下事情来划清界线:

public void drawNumberLine(Graphics g) {
    g.drawLine(0,0,100,0);
}

不确定从那里去哪里,因为我不知道如何绘制线上的点。我已经阅读了一些教程,但都涉及 2D 图,所以我想知道是否有人可以指导我正确的方向。

最佳答案

你的数组是什么数字范围?我假设您想缩小它以适应您的 100 条长线?只能是正数吗?在那种情况下,像这样的东西应该可以工作

//Find the max value for scaling purposes
double max = Double.MIN_VALUE;
double min = Double.MAX_VALUE
for(double i : array){
    if(i > max) max = i;
    if(i < min) min = i;
}


for(double i : array){
    //Replace 100 with a variable for how long the line is!
    double scaled = ((i-min)/(max-min)) * 100; 

    Ellipse.Double circle = new EllipseDouble(width, height, scaled, 0);

    g2d.draw(circle)
}

如果是整型数组,一定要避免整数除法。

关于java - 使用 Java 绘制一维图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470053/

相关文章:

java - 尝试读取系统提供给我的 listFiles 时出现 FileNotFoundException。这是名称编码问题吗?

java - 使用 NodeList 和 DocumentBuilder 解析 Xml 并获取值

java - 查找 startAngle 和 arcAngle 传递给 Java Graphics 的 drawArc()

java - 如何修复闪烁

java - 使用比屏幕大得多的 Canvas

java - Java 中的 Groupby 计数

java.util.zip.ZipException : duplicate entry support v4 PrintHelper$1. 类

Java Swing ActionListener 不工作

c++ - 如何为 GL_SELECT 缓冲区启用深度测试?

math - 一些帮助渲染 Mandelbrot 集