我正在寻找一种确定一组顶点的最佳X/Y/Z旋转方式以进行渲染(使用X/Y坐标,忽略Z)在2D画布上。
我有几个想法,其中一个是纯暴力方法,涉及对顶点集执行三维循环,范围为0..359(步长为1或更多,具体取决于结果/速度要求),测量X/Y轴上的最小/最大差异,存储最高结果/旋转对并使用最有效的对。
第二个想法是确定两个距离最远的点之间的欧几里得距离,计算旋转这两个点之间的“路径”所需的角度使其沿着X轴排列(同样,我们忽略Z轴,因此结果中的深度不重要),然后重复几次。我能看到的问题是,首先通过重复它,我们可能会用新的旋转覆盖我们以前的旋转,并且原始/随后的旋转可能不一定会产生最大的2D区域利用率。第二个问题是如果我们只使用单个迭代,则会出现相同的问题-距离最远的两个点可能没有其他点沿着同一“路径”对齐,因此我们可能无法获得2D项目的最佳旋转。
使用第二个想法,也许使用前3次迭代,存储所需的旋转角度,并在3次迭代中取平均值会返回更准确的结果,因为它不仅考虑了单个旋转,还考虑了前三个“对”。
请批判这些想法,提供您自己的见解。我很想看看您们可能有的解决方案或我不知道的算法。
我有几个想法,其中一个是纯暴力方法,涉及对顶点集执行三维循环,范围为0..359(步长为1或更多,具体取决于结果/速度要求),测量X/Y轴上的最小/最大差异,存储最高结果/旋转对并使用最有效的对。
第二个想法是确定两个距离最远的点之间的欧几里得距离,计算旋转这两个点之间的“路径”所需的角度使其沿着X轴排列(同样,我们忽略Z轴,因此结果中的深度不重要),然后重复几次。我能看到的问题是,首先通过重复它,我们可能会用新的旋转覆盖我们以前的旋转,并且原始/随后的旋转可能不一定会产生最大的2D区域利用率。第二个问题是如果我们只使用单个迭代,则会出现相同的问题-距离最远的两个点可能没有其他点沿着同一“路径”对齐,因此我们可能无法获得2D项目的最佳旋转。
使用第二个想法,也许使用前3次迭代,存储所需的旋转角度,并在3次迭代中取平均值会返回更准确的结果,因为它不仅考虑了单个旋转,还考虑了前三个“对”。
请批判这些想法,提供您自己的见解。我很想看看您们可能有的解决方案或我不知道的算法。