我将如何使用 Babylonjs 中的线绘制一个框区域?
How would I go about drawing a box area using lines in Babylonjs?
我正在尝试在 babylonjs 项目的地板上用线创建一个框,我知道我需要为每个点创建一个矢量,但我不知道标记点需要什么。
posOne = new BABYLON.Vector3(10, 0, -100)
posTwo = new BABYLON.Vector3(-100, 0, 10)
posThree = new BABYLON.Vector3(100, 0, 10)
posFour = new BABYLON.Vector3(10, 0, 100)
const updatePath = () => {
path = [];
path.push(posOne);
path.push(posTwo);
path.push(posThree);
path.push(posFour);
};
updatePath();
var linesMesh = BABYLON.Mesh.CreateLines("lines", path, scene, true);
到目前为止我已经有了这个,但我似乎无法连接这些线或让它们形成一个正方形。我的数学真的很差,所以了解这背后的理论会很有趣!
首先 - 游乐场:http://www.babylonjs-playground.com/#XBGEQ
要创建一个盒子,您需要连接 5 个点(最后一个点与第一个点相同)。如果您希望它们处于相同的高度,则 y 轴(您也理解)应保持为 0。然后,这就是了解下一个点在哪里的问题。
假设盒子应该有 10 个单位宽。 "upper" 左核为(-5, 0, 5),因为前向x为负,z为正。下一点,"upper" 右角是 (5,0,5)。从那里你去 "down" (实际上朝向你)到 (5,0,-5) 并最终到 (-5,0,-5)。然后,只需添加第一个点即可完成框。
我正在尝试在 babylonjs 项目的地板上用线创建一个框,我知道我需要为每个点创建一个矢量,但我不知道标记点需要什么。
posOne = new BABYLON.Vector3(10, 0, -100)
posTwo = new BABYLON.Vector3(-100, 0, 10)
posThree = new BABYLON.Vector3(100, 0, 10)
posFour = new BABYLON.Vector3(10, 0, 100)
const updatePath = () => {
path = [];
path.push(posOne);
path.push(posTwo);
path.push(posThree);
path.push(posFour);
};
updatePath();
var linesMesh = BABYLON.Mesh.CreateLines("lines", path, scene, true);
到目前为止我已经有了这个,但我似乎无法连接这些线或让它们形成一个正方形。我的数学真的很差,所以了解这背后的理论会很有趣!
首先 - 游乐场:http://www.babylonjs-playground.com/#XBGEQ
要创建一个盒子,您需要连接 5 个点(最后一个点与第一个点相同)。如果您希望它们处于相同的高度,则 y 轴(您也理解)应保持为 0。然后,这就是了解下一个点在哪里的问题。
假设盒子应该有 10 个单位宽。 "upper" 左核为(-5, 0, 5),因为前向x为负,z为正。下一点,"upper" 右角是 (5,0,5)。从那里你去 "down" (实际上朝向你)到 (5,0,-5) 并最终到 (-5,0,-5)。然后,只需添加第一个点即可完成框。