【问题标题】:Java: Certain coordinates labeled on a plotted lineJava:在绘图线上标记的某些坐标
【发布时间】:2021-01-04 13:39:34
【问题描述】:

我正在开发一个程序,该程序从生成的实时数字数组列表中创建一条绘图线。这些数字不一定是线性的,并且可以创建一个弯曲的模式。该程序计算反转点并将它们提供给用户,但是当存在大量反转时,屏幕上的混乱可能是一个相当大的问题。有没有办法重写/修改代码以使其仅打印某些数字,例如,如果该人希望仅显示数字 80、90 和 143。附上代码:


CustomCoordinate 是一个自定义类,可帮助设置列表,为清晰起见。

private int count;
private int num;

public CustomCoordinate(long time, double value, int number) {
    super(time, value);
    this.count = number;
}

public int getCount() {
    return count;
}

为了澄清,selDateInSec 是一个日历对象,用户在其中输入第一个数据点标签沿 x 轴定位的日期。在此之前的任何反转都不会被标记,任何之后的都会。

int x = 0;
if (inversions) {
    for(CustomCoordinate c : points) {
        if(c.getTime() > selDateInSec) {
            Label lbl = new Label (instr.format(++x), f, txtColor, bgColor);
            lbl.setLocation(c);
            addFigure(lbl);
        }
    }
}

提前致谢

【问题讨论】:

  • 我不太确定我是否理解您的问题,但如果您只想打印给定的数字,为什么不检查并打印遇到任何问题?如果这是一个视觉问题,您可能需要计算这些标签的近似大小(计算实际大小可能是一项复杂的任务,但一个近似值应该就足够了),然后只有在它们彼此相距足够远时才添加标签。
  • 我尝试做一个“如果号码是这个,打印号码”的解决方案,但与日期功能配对时会出现严重故障。如果在没有开始日期的情况下完成,它可以正常工作,但数据输出在这种情况下并不是真正有用。我会看看我能对标签问题做些什么,谢谢你的建议,尽管这是我的次要问题。
  • 我不确定我是否完全理解您的问题。将日期检查(如果需要)和数字结合起来有什么问题?
  • 问题是当使用日期检查时,标签出现在一个不正确的点上。例如,我在第 37 点得到一个 50 的标签。我试图查看是否出现了一种模式,是否总是向后或向前标记一定数量的点,但无济于事。如果我不使用日期功能,第 50 点将标记为“50”。此外,我使用日期功能的另一段代码工作得很好,所以我知道问题不在于日期功能本身。
  • 嗯,如何计算日期过滤产生的偏移量?因此,如果由于日期过滤器的原因,您从第 23 点开始,那么第 27 个渲染点应该得到标签 50 等。

标签: java list arraylist


【解决方案1】:

您可以从用户那里获取他们感兴趣的点的输入,然后在其上使用filter 函数来过滤掉感兴趣的点。因此,您将能够只显示兴趣点而不会造成混乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多