在Processing中,有一个“map()”函数,其工作方式如下:
float someValue = 25
float m = map(someValue, 0, 100, 0, 500);
将一个数字从一个范围重新映射到另一个范围。
在上面的示例中,数字25从0到100范围内的值转换为0到500之间的值。
这是一种“调整大小”数字的快捷方式,而不是进行数学运算。
在VBA中有这样的功能吗?
基本上,我正在尝试做类似(伪代码)的事情:
for i = 0 to 20
Shapes.addline(10,10,20,i).Line.ForeColor.RGB = RGB(0,0,i)
Next
但我希望“i”从0到255缩放,因此(10,10)(20,2)处的行不具有RGB(0,0,2),但类似于(0,0,34) )或任何规模......
这有意义吗?感谢您的任何想法/帮助/建议!
答案 0 :(得分:0)
在VBA中有一个名为Rnd的函数,它可以为您提供一个范围之间的随机数。所以你可以做点什么,
Dim rgbInd As Integer
For i = 0 To 20
rgbInd = Int ((255 - i + 1) * Rnd + i)
Shapes.addline(10, 10, 20, i).Line.ForeColor.RGB = RGB(0, 0, rgbInd)
Next
答案 1 :(得分:-1)
Dim c as integer, m as integer, n as integer
m = 255 'or any number that you want.
n = 20 'or num of variant color you specified
For i = 0 to m
c = Int(i * n / m)
Shapes.addline(10,10,20,i).Line.ForeColor.RGB = RGB(0,0,c)
Next
)