在对数刻度下计算数值。

3

我希望你能在位图编辑器中逐像素重新绘制这个体重比例尺。据我理解,这是一个对数比例尺,但是这个对数是二进制还是十进制的呢?

如何计算像素之间的线距离。也许最好从1到70进行计数,然后再反向计数。

values = []
for kilos, value in enumerate(range(1, 71)):
    //  some logic
    values.append([kilos, pixels])
reverse(values)

enter image description here


2
由于从10到20的距离与从20到40的距离相同,我猜测是Log 2。 - cdlane
3
因为log_n(a) = log(a) / log(n),底数并不重要。 - kennytm
1个回答

2

假设你想要一个高度为500像素,你可以使用以下代码获取间隔:

import math
pixels = 500
offset = math.log(10)
for x in range(10, 71, 10):
    print x, int(pixels * (math.log(x) - offset) / (math.log(70) - offset))

这是输出结果:
10 0
20 178
30 282
40 356
50 413
60 460
70 500

像素计数只是每个间隔开始和结束之间的差异。将500更改为适合您的应用程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接