基于字符串长度的条件

Condition based on length of string

使用 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...astatine)或三个字符长(未命名的新发现)。我编写了一个动画循环来遍历所有元素序号,并且已经设法在单个 运行.

中渲染 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_lengthdocumentation一个都没提到

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

找到了,strlen(element):

Source

然后我在文档中搜索 strlen,它包含一个 reference,它在一般函数文档部分,而不是在字符串函数章节中:

strlen(S)
Length of S. Returns an integer value that is the number of characters in the string S.