我们有一个算法,可以创建矩形和第二个形状,其侧面的数字不确定,并且可以具有内部形状(例如,甜甜圈样式),目标是创建一个算法,该算法将查看是否可以包含矩形几何形状。
该程序在python中使用,它整形使用。首先我们测试这些区域,如果矩形的区域可以包含在形状中,我们只需将其放在中心并进行测试。如果没有输入,我们将旋转一度(例如)并继续测试。 180度后,我们停止旋转,并以1厘米(例如)的原始形状将其移动(以使所有位置围绕几何形状的重心)。
该程序运行良好,但对于某种形式来说,它相对较慢(需要数分钟的计算时间),不是三角学的专业人士,我要求您提供帮助以加快治疗速度。
您有什么建议吗?
谢谢。
例如要慢:
http://image.noelshack.com/fichiers/2018/51/5/1545390818-3dadvwcbpzmewfdbzrm7.png
http://image.noelshack.com/fichiers/2018/51/5/1545390818-htadvwcbpzmewfdbzrq7.png
http://image.noelshack.com/fichiers/2018/51/5/1545390818-ojadvwcbpzmewfdbzqg6.png
http://image.noelshack.com/fichiers/2018/51/5/1545390818-3dadvwcbpzmewfdbzrm7.png
答案 0 :(得分:0)
我们可以找到旋转的矩形是否适合滑点逼近的凸多边形。
在某个多边形顶点中放置矩形的一个角(let A),并将另一个角B放置在该顶点的右侧(如果矩形边缘太长,则在下一个边缘)。向右滑动A直到A或B遇到多边形顶点。检查C和D的轨迹是否与多边形边缘相交。这些轨迹可能是笔直的,也可能是类似旋环的(如果B在A以外的另一个edgr上滑动)。当A或B遇到下一个顶点时,重复下一个。如果失败,还检查其他放置-B-C边缘。
遗憾的是,这种方法不适用于凹面多边形。