画一个正交于向量的正方形3 (three.js)
Draw a square orthogonal to a vector3 (three.js)
正如标题所说,我正在尝试在矢量的末端绘制一个正方形。
我的向量从球体 (radius = 1
) 的表面开始,其位置由 lat
和 long
.
定义
为了进行测试,我将 vector3
投影到 (4,4,4)
处 space 中的一个点,并希望在终点处有一个正方形(平面)(比如 (4,4,4)
)。正方形需要 正交 此矢量,或由球体表面上的位置定义的任何其他矢量到 space.
中的点
概念图(红色是我想做的)
以下代码在 space 中生成了我的矢量,但我在正方形部分遇到了困难。
(我已经知道如何画正方形,只是不知道如何把它放在vector3
代码的末尾)
x1=4;
y1=4;
z1=4;
lat = 40;
lon = -70;
radius = 1;
x = -((radius) * Math.sin(phi)*Math.cos(theta));
z = ((radius) * Math.sin(phi)*Math.sin(theta));
y = ((radius) * Math.cos(phi));
var geometry3 = new THREE.Geometry();
var mygeometry = new THREE.Geometry();
var material3 = new THREE.LineBasicMaterial( { color: 0x00ff00 });
geometry3.vertices.push(new THREE.Vector3(x, y, z));
geometry3.vertices.push(new THREE.Vector3(x1, y1, z1));
var line1 = new THREE.Line(geometry3, material3);
scene.add(line1);
如果要将平面网格的法线匹配到任意直线,可以使用 mesh.quaternion.setFromUnitVectors( normal_of_plane, normalized_line_vector )
。
您可以在以下位置查看四元数的文档:http://threejs.org/docs/#Reference/Math/Quaternion
正如标题所说,我正在尝试在矢量的末端绘制一个正方形。
我的向量从球体 (radius = 1
) 的表面开始,其位置由 lat
和 long
.
定义
为了进行测试,我将 vector3
投影到 (4,4,4)
处 space 中的一个点,并希望在终点处有一个正方形(平面)(比如 (4,4,4)
)。正方形需要 正交 此矢量,或由球体表面上的位置定义的任何其他矢量到 space.
概念图(红色是我想做的)
以下代码在 space 中生成了我的矢量,但我在正方形部分遇到了困难。
(我已经知道如何画正方形,只是不知道如何把它放在vector3
代码的末尾)
x1=4;
y1=4;
z1=4;
lat = 40;
lon = -70;
radius = 1;
x = -((radius) * Math.sin(phi)*Math.cos(theta));
z = ((radius) * Math.sin(phi)*Math.sin(theta));
y = ((radius) * Math.cos(phi));
var geometry3 = new THREE.Geometry();
var mygeometry = new THREE.Geometry();
var material3 = new THREE.LineBasicMaterial( { color: 0x00ff00 });
geometry3.vertices.push(new THREE.Vector3(x, y, z));
geometry3.vertices.push(new THREE.Vector3(x1, y1, z1));
var line1 = new THREE.Line(geometry3, material3);
scene.add(line1);
如果要将平面网格的法线匹配到任意直线,可以使用 mesh.quaternion.setFromUnitVectors( normal_of_plane, normalized_line_vector )
。
您可以在以下位置查看四元数的文档:http://threejs.org/docs/#Reference/Math/Quaternion