three.js怎么获取模型的物理信息
问题描述
- 如图,输入文字之后,想把文字渲染到这个笑脸的嘴巴上面凹陷的位置,就像印在上面一样,并且自适应间距。但是要怎么获取文字的间距、坐标、大小、厚度、还有字体弯曲的弧等等。
相关代码
// 从stl文件读取模型
var stlLoader = new THREE.STLLoader();
stlLoader.load('1.stl', function(geometry){
// 创建材料
var material = new THREE.MeshPhongMaterial({
color: 0xc9caca,
specular: 0xc9caca
});
// 创建网孔
var stlCube = new THREE.Mesh(geometry, material);
// 缩放
stlCube.scale.set(3, 3, 3);
// 居中显示
geometry.center();
stl = stlCube;
// 创建字体loader
var fontLoader = new THREE.FontLoader();
fontLoader.load('node_modules/three/examples/fonts/helvetiker_regular.typeface.json', function(font){
stlCube.geometry.computeBoundingBox();
// 文字的厚度,这里的厚度是整个笑脸的厚度,我需要的,是嘴巴凸起的厚度
var fontHeight = stlCube.geometry.boundingBox.max.z - stlCube.geometry.boundingBox.min.z;
var text = new THREE.TextGeometry(txt, {
font: font,
size: 7,
height: fontHeight
});
text.translate(0, 0, -fontHeight / 2);
var textMaterial = new THREE.MeshPhongMaterial({
color: 0xaabbcc,
specular: 0xaabbcc
});
var cube = new THREE.Mesh(text, textMaterial);
// 把字体添加为子对象
stlCube.add(cube);
// 创建boxHelper
var box = new THREE.BoxHelper(stlCube, 0xff0000);
boxHelper = box;
stl = stlCube;
scene.add(box);
scene.add(stlCube);
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
咋获取?获取不到,不然怎么会有物理引擎这个东西