用于说明温度的色标,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个第一粒子:

  1. 5.28964162682e+14 5.62257206698e+13 -2.9525300544e+14 128.332184907
  2. 5.23680422449e+14 9.33982452199e+13 -2.9525300544e+14 128.336966138 3 5.15787732694e+14 1.3010546441e+14 -2.9525300544e+14 128.346633243
  3. 5.05325414399e+14 1.66164504722e+14 -2.9525300544e+14 128.355079501