gc2*_*234 5 algorithm math geometry computational-geometry differential-equations
我在2D空间(在xy平面上)有一个凸形闭合形状.我不知道它是什么样的.我将此形状绕其边界框的大约中心旋转64次,旋转5.625度(360/64).对于每次旋转,我都有形状极值点的x坐标.换句话说,我知道每次旋转的形状的左右x范围(假设正交投影).如何在不与x投影相矛盾的形状上获得64个点.请注意,2D形状是旋转的,但坐标轴不随其一起旋转.因此,如果您的对象是一条线,则每个端点的x投影(如果绘制)将基本上是sin/cos波,具体取决于其原始方向.
旋转次数越高,如果我有解决方案 - 我会越接近我的实际形状.
实际上我不知道我正在旋转形状的确切点,但是假设我知道任何解决方案仍然会有所帮助,因为我不介意重建是不完美的.
我们使用直接方法来重建。
投影是物体的阴影。
您从一个二维边界框开始。对于每个投影,您都会从 2D 形状的左侧和右侧部分中切掉位于投影之外的部分。因此,主函数计算两个凸二维形状的交集。您计算每个投影的这些交点。
我们有原始绿色物体的几个紫色投影 P1、P2、P3、P4:

知道紫色投影的位置,构建来自投影端点的两条红色光线,并将它们与重建的对象相交:

红色物体是使用 4 个投影重建的。与原始绿色相比,您可以看到它们不一样。预测越多,最终结果中的错误就越少。
