我在处理(Java)中有一个简单的图表。它将 0 到 1024 之间的值显示为具有不同高度的绿线。
看一看:
我想在图表上标记以增加方向。这意味着需要一条灰色水平线标记,例如 0、256、512、768 和 1024。我想根据窗口大小显示不同数量的标记。这应该由两个标记之间的最小 100 像素距离决定。
我不知道如何从高度计算这个。这是我第二次面对这个问题,但我从来没有清楚而成功地解决它。
这是我的尝试:
//How many marks can we display at maximum
byte no_marks = (byte)(height/100);
//I just guess I always want 1,3,5... here, so there will be a mark in the middle
if(no_marks%2==0)
no_marks--;
//Calculate how many pixels will be between my marks
short mark_distance = (short)(height/no_marks);
//Now calculate the value distance between marks
short mark_step = (short)(1024/(no_marks+1));
textSize(32);
//I go from 1 to max-1 because 0 and 1024 wouldn't fit on screen
for(byte i=1; (i+1)<no_marks; i+=1) {
//Draw light blue text
text((i*mark_step), 5,mark_distance*i);
fill(0, 102, 153);
}