给出了空间中的点数组。让我们将其中的一个点表示为P。从某个点C沿OZ轴绘制一个四棱锥,使其底边平行于轴OX和OY,并且四边形本身是一个矩形。OZ和棱锥面之间的角度也是已知的(设phi1是与底面平行于OX的面的角度,phi2是与底面平行于OY的面的角度)。任务是从给定数组的所有P中选择位于给定金字塔内的那些点。
此外,金字塔的高度是无限的,所以在尝试解决这个问题时,我试图精确地关注偏离高度的角度,它位于OZ上。
我的想法是这样的:
1) Пусть P = (Px, Py, Pz), C = (cx, cy, cz)
2) Pxz = (Px-cx, Py-cy), Pyz = (Py-cy, Py-cy)
3) Ox = (cx+1,cy,cz), Oy = (cx,cy+1,cz), Oz = (cx,cy,cz+1)
4) Далее ищем угол между Pxz и Oz (alpha) и угол между Pyz и Oz (beta)
5) Если |alpha|<=phi1 и |beta|<=phi2, то точка P нам подходит, иначе смотрим следующую точку.
但是,当我在 Matlab 中执行此操作时,结果不正确。图像显示了大图。蓝色、深红色和绿色线是建造金字塔的坐标系。蓝线是一个空间椭圆,其点是给定的数组。

金字塔是设置的,当然,或者......
我们假设 P 是金字塔的顶点。
金字塔的平面横截面
z = P.Z是一个半边长的矩形仍有待验证