将变形立方体重塑为具有最大尺寸(最远顶点)的正常立方体的算法

时间:2017-03-20 22:43:28

标签: c# algorithm 3d

我想知道是否有一个算法,或者从变形的立方体开始的数学函数,获得最远的顶点并将立方体重新整形为基于最远顶点的正常立方体。

为了使我的问题更清楚,请看下面的图片:

所以我从左边的变形立方体开始,我想要变换它,使它看起来像右边的第二个立方体。由于顶点(2,2,3)是它们中最远的,我认为说明所有其他顶点应该具有值3作为它们的coördinates是正确的,这将导致右边的立方体?

enter image description here

为实现这一目标,我可以在编程语言中应用现有的公式吗?或者我应该自己编写,例如:“遍历所有顶点以找到最远的顶点。然后,从这个顶点开始,它是具有最高值的x,y,zcoördinates(在本例中为z:3)。然后将此值作为所有其他顶点的相应x,y,z坐标

更新 当然我知道如果最远的顶点有一个负的coördinate,同样适用,但这很容易计算。

1 个答案:

答案 0 :(得分:0)

没有3不是大小,因为您变形的多维数据集的中心不是(0,0,0)!您应该明确需要保留哪些属性。

  • 尺寸
  • 位置
  • 方向(属于什么)

有更多方法可以做到这一点,但是如果你需要保留以上所有内容(约束最大尺寸):

  1. 计算中心(平均点)
  2. 找出最大的对角线,从中计算出你的立方体的一半大小。
  3. 计算基础向量

    所以只需将您的立方体的边缘放在3个轴上并将它们设置为正确的尺寸,并使它们垂直利用交叉产品

  4. 构建新的顶点

    所以只需沿着每个基础向量从中心转换到两个方向即可。如果您不需要保留轮换,可以跳过#3 并直接使用(1,0,0),(0,1,0),(0,0,1)作为基础向量。