如何在THREE.TextGeometry中添加带上标的字符串?

时间:2017-11-14 14:51:21

标签: javascript string three.js

我正在使用Three.js处理尺寸标注工具。 我想在两个对象之间的一条线上写出距离的尺寸。 我想写2.45 5 ,如图所示。 enter image description here

可悲的是,正如在Threejs中一样,R88是不可能得到的HTML编码,例如,TextGeometry中的上标函数。一种解决方案是将第二个文本几何体(带有上标数)附加到主要几何体上。但我想避免这种解决方案,因为我认为它不是一个非常明智/干净的解决方案。 你有任何想法如何解决这个问题吗?

这样的事情显然不起作用:

var ss = '5'.sup();

var geometry = new THREE.TextGeometry( '2.45' + ss, {
        font: font,
        size: 80,
        height: 5});

提前感谢您,我对所有建议持开放态度。

2 个答案:

答案 0 :(得分:4)

您加载的Font必须支持您要使用的字符。

经过简短的检查,我能够在helvetiker_regular.typeface.json字体文件中找到“²”。这并不能保证它会包含您正在寻找的角色。例如,我无法在同一文件中找到“⁶”的定义。

当然,最简单的解决方法是创建正常比例的数字,然后将它们缩放/定位到suberscript位置。 Three.js还提供了组合几何的方法,因此您可以在过程中减少网格(解决“不干净”问题)。

答案 1 :(得分:-1)

解决方案可以是使用以下字符:

⁰¹³³⁴⁵⁶⁷⁸⁹

这些是通过ALT字符创建的。 link

他们应该在Three.js工作。