从Three.js中的共平点集最适合矩形

Rob*_*rto 7 javascript three.js aframe

首先,我道歉,如果有一个解决方案,但我已经做了大量的挖掘Three.js和A-Frame文档以及Stack Overflow,并没有找到我正在寻找的东西.

我想要做的是从一组我已经知道是共面的Vector3中创建一个最合适的A-Frame平面.如果平面的角度是90的倍数,这可以很容易地完成,但是其他任何东西和Box3s的.setFromPoints()算法都不能按我需要的方式工作.

从Three.js到A-Frame的转换我很可能会处理自己,但是如果有人想解决这个问题,我们非常欢迎他们.我只需要创建一个实际上有意义的矩形平面.

基本上,我想创建一个执行此操作的算法:

创建粗体平面,而不是浪费太多空间的打火机盒/平面.

绘图说明

我不想创建完全符合要点的自定义几何体,这是我已经完成的.我实际上只想要一个只有高度,宽度,位置和旋转属性的A-Frame平面.我明白这不太精确,但它对我正在做的事情来说更为理想.

Ger*_*ard 1

首先找到穿过这些点的最佳线。这称为“线拟合”,如下所示:http ://stackoverflow.com/questions/2352256/fit-a-3d-line-to-3d-point-data-in-java ,应该很容易做到这一点在二维而不是三维中。另请参见此处:https: //en.wikipedia.org/wiki/Deming_regression 该线给出角度,点的垂直距离的最小值是矩形的高度,垂直脚点的位置的最小值到该线就是矩形的宽度。或者将所有点旋转直线的负角,然后简单地计算矩形宽度和高度的点的 x 和 y 分量的 minmax 值。