gpt4 book ai didi

javascript - 相对于点javascript放置对象

转载 作者:行者123 更新时间:2023-11-30 20:47:21 24 4
gpt4 key购买 nike

在这种情况下,我有一些 javascript 代码试图将一些对象相对于中心点放置在彼此之上 0,0问题是对象的数量、对象的大小以及对象之间的间距都是可变的。

请看下面这张最能说明我的情况的图片(希望 ;)): enter image description here

所以在这种情况下,中心点是绿点,网格中心位置是黄点。
Mh 代表网格高度(可变)
Sh 代表间距高度(可变)
我试图展示黄点计算背后的逻辑。但是当我尝试在 javascript 中实现它时,它适用于 3 行,但它会在其他行数上中断。

这是我到目前为止尝试过的:

var data = {
text : ["THE NEXT","POINT","OF VIEW"],
size : 5,
height : 2,
curveSegments : 12,
line_height : 2
};

function generateTextGeometry(mesh) {

var scaled_lineheight = map_r(data.size, 2, 75, 0.5, 20);
var y_start = (0 - data.text.length * data.size / 2 - data.size / 2 - (data.text.length - 1) * scaled_lineheight)/2;
var loader = new THREE.FontLoader();

loader.load( 'data/suisse_2.json', function ( font ) {

for (var i = data.text.length - 1; i >= 0; i--) {
var geometry = new THREE.TextGeometry( data.text[i], {
font: font,
size: data.size,
height: data.height,
curveSegments: data.curveSegments
});
geometry.center();
mesh.children[i].geometry = geometry;
mesh.children[i].position.y = y_start;

console.log(mesh.children[i].position);

if (i < data.text.length) {
y_start += (data.size + scaled_lineheight);
}else{
y_start += data.size;
}
}
console.log('-----------------------');
});
}

并且当我在 console.log 中记录 3 行的位置时:

p {x: 0, y: -6.301369863013699, z: 0}
p {x: 0, y: 0, z: 0}
p {x: 0, y: 6.301369863013699, z: 0}

但对于任何其他行数都是错误的:

p {x: 0, y: -4.4006849315068495, z: 0}
p {x: 0, y: 1.9006849315068495, z: 0}

所以我的最后一个问题是,我如何始终在相对于绿色中心的正确位置获得黄色位置?我目前的逻辑有什么问题?

如果有什么不清楚的请告诉我!所以我可以澄清一下。

最佳答案

所以在阅读了我自己的问题大约 20 遍之后。灯光照亮了我的大脑哈哈。

所以我在计算初始开始时犯了一个错误这是更新的行:

var y_start =  0 - (((data.text.length - 1) * data.size) + ((data.text.length - 1) * scaled_lineheight))/ 2;

关于javascript - 相对于点javascript放置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48560580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com