我正在使用AndroidPlot 0.61。我想用圆形网格线制作一个图形,与Desmos Calculator(在线)的方式非常相似,但不需要子网格线。我目前正在使用INCREMENT_BY_VALUE和自定义函数来计算最佳网格间距。不幸的是,网格线从原点开始,每条线都是(原点+ n * mod)而不是(n * mod)。如何使网格线成为绝对值的所有倍数?
(这个问题的一个扩展是如何使网格线与图形一起滚动,并在它缩放时改变大小。它在概念上与这个问题How to make domain grid line scroll有关,但我拒绝相信Android上最流行的两个图形框架都明显省略了这样一个基本功能。)
答案 0 :(得分:0)
我担心我没有完全跟踪你问题的前半部分。网格线是相对于原点计算的,但您可以将原点设置为您想要的任何值。如果你希望你的网格线是绝对值的倍数,并且你是通过INCREMENT_BY_VALUE踩到那么为什么不将你的原点设置为其中一个倍数呢?
关于使网格线滚动的问题的第二部分:如果你手动设置userDomainOrigin而不是允许它'&34;浮动"使用数据然后根据需要调整域边界,您应该获得所需的效果。要记住的是网格是相对于原点绘制的,所以如果让它随着你的边界浮动(默认行为),那么网格似乎是固定的。
为了说明,如果将以下代码添加到DemoApp's SimpleXYPlotActivity中onCreate(...)的末尾,则网格将以0.1的增量从右向左滚动,频率为1hz:
plot.setUserDomainOrigin(0);
new Thread(new Runnable() {
float offset = 0.1f;
float window = 6f;
@Override
public void run() {
try {
while(true) {
Thread.sleep(1000);
plot.setDomainBoundaries(offset, offset + window, BoundaryMode.FIXED);
plot.redraw();
offset+= 0.1f;
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}).start();
答案 1 :(得分:0)
您在不知情的情况下自己找到答案:
"网格线从原点开始"
所以只需将原点设置为您喜欢的任何值
setUserDomainOrigin() and setUserRangeOrigin()
将根据此用户选择的原点计算和绘制网格。