【问题标题】:Color gradient based on point's Z value基于点 Z 值的颜色渐变
【发布时间】:2018-09-13 13:56:48
【问题描述】:

我正在尝试确定 3D 坐标系中各个点的颜色。我想要这样做的方法是根据该点的 Z 坐标值确定特定 3D 点的 RGB 值,对于具有最大 Z 值的点只有红色,对于具有最小 Z 值的点具有只有蓝色。但我不确定如何在所有点之间转换 R、G 和 B 的值。

谢谢

【问题讨论】:

  • 彩色立方体?有点像 3D 颜色选择器?
  • 类似的,我希望它用红色突出 z 的较高值和用蓝色突出 z 的较低值,并在值之间有一个很好的过渡。
  • 通常你有这样的颜色渐变(作为刻度颜色),或者只是作为渐变函数(具有开始和结束值(颜色),例如还有中间值(如 0))。工具提供了这样的功能。手工不太灵活(但在你的情况下:要么:用白色插值(中间),要么插值极端(每个通道)。这应该足够了。为了真正好,你需要一个设计师,更好的功能(也许通过保持相同的亮度和饱和度)。
  • @GiacomoCatenazzi 您能否提供一些实施您建议的示例。
  • 例如matplotlib.org/users/colormapnorms.html CSS(HTML)和 SVG 也实现了这种颜色分级,因此各种绘图库都支持它们,因为它们基于或复制了这种图形 API。检查你的图形工具,或者如果你想控制,就像我告诉你的那样:从开始到结束颜色的线性插值(每个通道,所以 R、G、B 分别)。

标签: colors language-agnostic


【解决方案1】:

RGB 配色方案对此不是很有用。投币看HSV

您必须将 Z 缩放到 (0, 360) 并将饱和度和值设置为 1,然后将其转换为 RGB

或者,如果您有类似 matlab jet 颜色图的想法:

Grayscale to Red-Green-Blue (MATLAB Jet) color scale

【讨论】:

    猜你喜欢
    • 2017-01-14
    • 1970-01-01
    • 2018-03-24
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    相关资源
    最近更新 更多