Javascript 通过For循环添加TextGeometry THREE.js
我正试图用3.TextGeometry()沿三维网格构建数字 但它只生成一个数字。 什么是使此代码正常工作的解决方案 “current”变量是一个从-10到10的数字,跳过0 我的IDE(PyCharm)告诉我“可变”变量可以从闭包中访问” 我不知道我做错了什么,也不知道如何解决,谢谢 函数createGridNumbersX(大小){Javascript 通过For循环添加TextGeometry THREE.js,javascript,for-loop,three.js,Javascript,For Loop,Three.js,我正试图用3.TextGeometry()沿三维网格构建数字 但它只生成一个数字。 什么是使此代码正常工作的解决方案 “current”变量是一个从-10到10的数字,跳过0 我的IDE(PyCharm)告诉我“可变”变量可以从闭包中访问” 我不知道我做错了什么,也不知道如何解决,谢谢 函数createGridNumbersX(大小){ var grpGridNumbersX=new THREE.Group(); grpGridNumbersX.name='grpGridNrsX'; var l
var grpGridNumbersX=new THREE.Group();
grpGridNumbersX.name='grpGridNrsX';
var loader=new THREE.FontLoader();
var fontType='font/helvetiker_regular.typeface.json';
var textMaterial=new THREE.MeshBasicMaterial({color:0xffffff});
对于(i=0;i),您很可能需要等待字体加载一次
var grpGridNumbersX = new THREE.Group();
grpGridNumbersX.name = 'grpGridNrsX' ;
var loader = new THREE.FontLoader();
var fontType = 'fonts/helvetiker_regular.typeface.json';
var textMaterial = new THREE.MeshBasicMaterial({ color: 0xffffff});
loader.load(fontType, createText);
function createText(font) {
for (let i=0; i<(size*2)+1; i++) {
var counter = i + 1;
var start = -size - 1;
var current = start + counter;
if (i === size) {
continue
}
console.log('current ' + current);
var textGeometry = new THREE.TextGeometry(**current**, {
font: font,
size: 0.3,
height: false,
});
var mesh = new THREE.Mesh(textGeometry, textMaterial);
mesh.name = 'xNr' + i;
mesh.position.x = current;
grpGridNumbersX.add(mesh);
}
scene.add(grpGridNumbersX);
}
var grpGridNumbersX=new THREE.Group();
grpGridNumbersX.name='grpGridNrsX';
var loader=new THREE.FontLoader();
var fontType='font/helvetiker_regular.typeface.json';
var textMaterial=new THREE.MeshBasicMaterial({color:0xffffff});
loader.load(fontType,createText);
函数createText(字体){
对于(设i=0;i溶液:
*在Loader.load中创建“For循环”
*将“当前变量转换为字符串”
仍在研究如何将每个数字对准摄影机,在我第一次加载场景时,它会正确地将其对准,但当我移动摄影机时,注视不会更新
函数createGridNumbersX(大小){
var grpGridNumbersX=new THREE.Group();
grpGridNumbersX.name='grpGridNrsX';
var loader=new THREE.FontLoader();
var fontType='font/helvetiker_regular.typeface.json';
var textMaterial=new THREE.MeshBasicMaterial({color:0xffffff});
loader.load(字体类型,函数(字体){
对于(i=0;i谢谢,我找到了解决方案,for循环需要在文本几何体函数的创建中,而不是在for循环中创建文本几何体
var grpGridNumbersX = new THREE.Group();
grpGridNumbersX.name = 'grpGridNrsX' ;
var loader = new THREE.FontLoader();
var fontType = 'fonts/helvetiker_regular.typeface.json';
var textMaterial = new THREE.MeshBasicMaterial({ color: 0xffffff});
loader.load(fontType, createText);
function createText(font) {
for (let i=0; i<(size*2)+1; i++) {
var counter = i + 1;
var start = -size - 1;
var current = start + counter;
if (i === size) {
continue
}
console.log('current ' + current);
var textGeometry = new THREE.TextGeometry(**current**, {
font: font,
size: 0.3,
height: false,
});
var mesh = new THREE.Mesh(textGeometry, textMaterial);
mesh.name = 'xNr' + i;
mesh.position.x = current;
grpGridNumbersX.add(mesh);
}
scene.add(grpGridNumbersX);
}
var grpGridNumbersX = new THREE.Group();
grpGridNumbersX.name = 'grpGridNrsX';
var loader = new THREE.FontLoader();
var fontType = 'fonts/helvetiker_regular.typeface.json';
var textMaterial = new THREE.MeshBasicMaterial({color: 0xffffff});
loader.load( fontType, function (font) {
for (i=0; i<(size*2)+1; i++) {
var counter = i + 1;
var start = -size - 1;
var current = start + counter;
if (i === size) {
continue
}
var str = current.toString();
var textGeometry = new THREE.TextGeometry(str, {
font: font,
size: 0.2,
height: false,
});
var mesh = new THREE.Mesh(textGeometry, textMaterial);
mesh.position.x = current;
mesh.name = 'xAxeNr' + i;
mesh.lookAt(camera.position);
grpGridNumbersX.add(mesh);
}
});
scene.add(grpGridNumbersX);