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

标签 javascript string three.js

我正在使用 Three.js 开发尺寸标注工具。 我想写两个对象之间的直线距离的尺寸标注。 我想写2.455如图所示。 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});

预先感谢您,我愿意接受每一个建议。

最佳答案

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

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

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

关于javascript - 如何在 THREE.TextGeometry 中添加带上标的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47288699/

相关文章:

javascript - 通过函数创建元素,然后在渲染函数中将新元素附加到父元素?

javascript - ExtJS 4加载满足一定条件的列

c - 在 C 字符串中包含双引号 (")

javascript - Three.js,如何访问场景中的项目?我应该使用 document.getElementById() 吗?

javascript - 如何在 if 中使用 AND 语句与 javascript?

javascript - MVC 使用 ajax 和复杂对象加载部分

java - 从回调中返回字符串 - Java

java - 在整个字符串中插入一个字符

javascript - 按钮移动相机 THREE.js

javascript - map : texture from new THREE. 纹理( Canvas )不起作用