用于说明温度的色标,Python 脚本
color scale to illustrate the temperature, Python script
我做了一个天文可视化,它说明了一颗行星从粒子云(我有超过 130.000 个)中诞生。每个粒子除了 xyz 坐标外,还有一个温度值。
是否可以将其编码为最低温度为绿色,最高温度为洋红色。亲爱的脚本,请按绿色和洋红色之间的比例为我的粒子着色?
我正在使用 Python (Blender)。
提前感谢您的帮助!
不熟悉 Blender,但假设您可以分配 RGB 值,此循环将从绿色渐变为洋红色:
counter = 130000 # number of particles in your cloud
change = 256 / counter # in-/de-crement for each particle
rgb = [0, 255, 0] # starting colour (green)
for i in range(0, counter):
rgb = [rgb[0] + change, rgb[1] - change, rgb[2] + change]
print("i: %04d; R: %03d, G: %03d, B: %03d" % (i, rgb[0], rgb[1], rgb[2])) # for debugging only, floats to integers for legibility
可能有更复杂的解决方案,但希望这能帮助您入门。
我应该说之前t min (32.668837340451788)是绿色,t max (129.20671163699313)是洋红色吗?这样脚本就知道,值是 "cold" 还是 "warm"。
例如,第一个粒子几乎是洋红色。
这里有4个第一粒子:
- 5.28964162682e+14 5.62257206698e+13 -2.9525300544e+14 128.332184907
- 5.23680422449e+14 9.33982452199e+13 -2.9525300544e+14 128.336966138
3 5.15787732694e+14 1.3010546441e+14 -2.9525300544e+14 128.346633243
- 5.05325414399e+14 1.66164504722e+14 -2.9525300544e+14 128.355079501
我做了一个天文可视化,它说明了一颗行星从粒子云(我有超过 130.000 个)中诞生。每个粒子除了 xyz 坐标外,还有一个温度值。
是否可以将其编码为最低温度为绿色,最高温度为洋红色。亲爱的脚本,请按绿色和洋红色之间的比例为我的粒子着色?
我正在使用 Python (Blender)。
提前感谢您的帮助!
不熟悉 Blender,但假设您可以分配 RGB 值,此循环将从绿色渐变为洋红色:
counter = 130000 # number of particles in your cloud
change = 256 / counter # in-/de-crement for each particle
rgb = [0, 255, 0] # starting colour (green)
for i in range(0, counter):
rgb = [rgb[0] + change, rgb[1] - change, rgb[2] + change]
print("i: %04d; R: %03d, G: %03d, B: %03d" % (i, rgb[0], rgb[1], rgb[2])) # for debugging only, floats to integers for legibility
可能有更复杂的解决方案,但希望这能帮助您入门。
我应该说之前t min (32.668837340451788)是绿色,t max (129.20671163699313)是洋红色吗?这样脚本就知道,值是 "cold" 还是 "warm"。 例如,第一个粒子几乎是洋红色。
这里有4个第一粒子:
- 5.28964162682e+14 5.62257206698e+13 -2.9525300544e+14 128.332184907
- 5.23680422449e+14 9.33982452199e+13 -2.9525300544e+14 128.336966138 3 5.15787732694e+14 1.3010546441e+14 -2.9525300544e+14 128.346633243
- 5.05325414399e+14 1.66164504722e+14 -2.9525300544e+14 128.355079501