我有一个由法线(n)和距离(d)(从原点)定义的平面.我想把它变成一个新的系统.长路是这样的:1)将距离(d)与法线(n)相乘得到aa向量(p)2)旋转(R)并平移(v)向量(p)得到(p')3) normalize(p')得到法线4)使用另一种算法找到新平面和原点之间的最小距离(d')
我没试过这个,但我想它应该有用.问题:是不是有更快的方法来获得n'和d'?如果翻译(v)是0而不是我可以跳过4).但如果它不是0?是否有更简单的方法来获得新的d'?
我在3D空间中有两个点,其X坐标具有不同的符号.所以其中一个肯定位于X平面的一侧,另一侧位于另一侧.
现在我想以最简单和最优化的方式找到这个平面和由两点组成的线的交点.
我知道如何做一般线平面交叉,但因为在这种情况下,平面只是x平面,我认为应该有一些我可以采取的捷径.
谢谢!
我想旋转一个平面,但我无法弄清楚如何设置旋转轴.我想围绕它的边缘旋转一个平面.
我已经看到了建议矩阵变换的解决方案,但他们缺乏解释,所以我无法应用它们.
我有一个二维平面中点的有序列表。我想找到最短的路线,以便它按照给定的顺序至少在距离每个点 X(或更近)的范围内。我如何找到这条路线?
我意识到将确定路线(方向在那里改变)的点将位于周长 X 的圆上,以输入点本身为中心,但我没有进一步了解。
我正在用 Python 实现这一点,但很乐意提供任何理论帮助。
我在 3D 空间中有一条直线和一个平面。我想将平面的宽度和长度线垂直放置。请参阅我的jsFiddle。
我是 Three.js 和向量计算的新手。

请给我建议。(为我糟糕的英语道歉)
JS代码:
let renderer;
let camera;
let controls;
let scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(54, window.innerWidth / window.innerHeight, 0.1, 1000);
renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(new THREE.Color(0xfefefe));
document.body.appendChild(renderer.domElement);
camera.position.set(5, 2, 7.5);
controls = new THREE.OrbitControls(camera, renderer.domElement);
let gridHelper = new THREE.GridHelper(4, 4);
scene.add(gridHelper);
//line is defined by p0-p1
var p0 = new THREE.Vector3(-2, 2, 1);
var p1 = new …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 localClipping 配置 THREE.plane 的位置,但我发现它有点不直观。我有一个想法,是否有可能创建一些 planeGeometry,操纵它,并将它的位置和方向转换为在它的位置创建一个 THREE.plane?
这对于配置剪切平面的位置很有用。
我有一个三角形,其中包含点 A、B、C 和空间中的点 (P)。如何获得点到平面的距离?我需要计算从 P 到平面的距离,即使我的三角形距离很远(或者不在该点上方,如图所示)。
点和三角形:
我将一个平面拟合到 3d 中的一堆点,最初使用 np.meshgrid 给它一个任意大小,但现在我试图绘制一个以该平面为中心并以相同方式定向的圆柱体(这样平面拟合会切割圆柱体的高度减半),但具有指定的半径和高度。我能找到的在 matplotlib 中绘制的圆柱体的唯一示例是空心的,并且通常在顶部和底部打开。我希望我绘制的那个是实心的,这样我就可以清楚地看到它包含哪些点。
这是一个随机生成平面的最小工作示例。由于我使用的平面总是由一个点和一个法向量给出,圆柱体也应该基于这些东西(加上提供的半径和在平面上方和下方延伸的高度)。
from __future__ import division #Enables new-style division
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import seaborn as sns
import numpy as np
cen_x = 0
cen_y = 0
cen_z = 0
origin = np.array([cen_x,cen_y,cen_z])
normal = np.array([np.random.uniform(-1,1),np.random.uniform(-1,1),np.random.uniform(0,1)])
a = normal[0]
b = normal[1]
c = normal[2]
#equation for a plane is a*x+b*y+c*z+d=0 where [a,b,c] is the normal
#so calculate d from the normal
d = -origin.dot(normal)
# create x,y meshgrid
xx, …Run Code Online (Sandbox Code Playgroud) plane ×11
3d ×4
three.js ×4
geometry ×3
line ×2
plot ×2
rotation ×2
vector ×2
algorithm ×1
convex-hull ×1
javascript ×1
math ×1
matplotlib ×1
minimum-size ×1
normals ×1
octave ×1
point ×1
projection ×1
python ×1
quaternions ×1
translation ×1