在 Python 中将多边形重置为其初始状态的程序
假设有一个多边形,有n个顶点、n个翻转轴和n个旋转点。以下情况适用于翻转轴和旋转点
如果 n 是奇数,则每个翻转轴仅通过一个顶点和对边的中间。
如果 n 是偶数,则一半的轴穿过一对相反的顶点,另一半穿过一对相反的边。
两个跟随轴的角度为 360/2n。
现在,我们旋转提供的多边形。我们有 n 种不同类型的旋转器,k 旋转器将多边形在轴 k 处顺时针旋转 (360 xk)/n 度。有一个列表输入列表,其中包含几对整数。一对的第一个整数表示多边形是否要翻转或旋转。如果第一个整数为 1,则旋转多边形,如果为 2,则翻转多边形。第二个整数是 k,如果多边形被翻转,它会在轴 k 上翻转,否则,如果它被旋转,它会旋转 360/2n 的角度。然后在列表不为空时完成旋转和翻转。
我们的任务是向列表中添加另一个元素,以便可以将多边形重置为其初始位置。
图像指定了两种多边形的旋转轴。
所以,如果输入像 n = 6, input_list = [[1, 2], [1, 4], [2, 3], [2, 5], [1, 6]],那么输出将是(1, 4)
转换后,沿第 4 轴旋转会将多边形重置为其初始位置。
示例
让我们看看以下实现以更好地理解 -
def solve(n, input_list):decision_var = False
position = 0
for item in input_list:
x = item[0]
y = item[1]
if x == 1:
position += y
else:
position = y - position
decision_var = not decision_var
position = position % n
if decision_var:
return (2, position)
else:
return (1, n - position)
print(solve(6, [[1, 2], [1, 4], [2, 3], [2, 5], [1, 6]]))
输入
6, [[1, 2], [1, 4], [2, 3], [2, 5], [1, 6]]输出结果
(1, 4)
以上是 在 Python 中将多边形重置为其初始状态的程序 的全部内容, 来源链接: utcz.com/z/363271.html