1

使用 POV-Ray for Windows 3.7 版,我编写了一个脚本来渲染代表化学元素的半透明立方体:

#declare H=difference {
  box {                      
    <-1, -1, 0>, <1, 1, 0.5>
    material {
      M_Glass
    }
  }                          

  text {
    ttf "ariblk.ttf", element,
    0.2, // depth
    0  // spacing
    texture { 
      pigment { color <0,0,0,1> }
    }
    scale 1.3
    translate <-0.8, -0.45, -0.1>  
  }                             
}

element字符串在哪里。现在化学元素代号可以是一个字符长(H...氢)、两个字符长(At...砹)或三个字符长(未命名的新发现)。我编写了一个动画循环来遍历所有元素序号,并且已经设法在一次运行中渲染 1..118。

标签应根据字符串长度的因子在立方体内沿 x 方向进行平移和缩放。虽然对于翻译,居中对齐或首先测量实际边界框可能会起作用,但我仍然希望能够表达这样的东西来进行缩放:

#switch(string_length(element))
#case(1)
    scale 0.9
    #break

#case(2)
    scale 0.72
    #break

#case(3)
    scale 0.62
    #break

#end

但是没有这样的功能string_length。该文档没有提到一个。

POV-Ray 中是否有字符串长度标量函数或宏?或者不是写118个案例的解决方法?

4

1 回答 1

0

找到了,strlen(element)

资源

然后我搜索文档strlen,它包含一个参考,它位于通用函数文档部分,而不是字符串函数章节:

strlen(S) S
的长度。返回一个整数值,它是字符串 S 中的字符数。

于 2020-11-12T17:51:03.913 回答