from sage.all import *
vertices = [(0, 0), (0, 1), (1, 1), (1, 0)]
p = polygon(vertices, fill=False)
def rotate_point(point, angle):
rot = matrix([[cos(angle), sin(angle)],
[-sin(angle), cos(angle)]])
return rot * vector(point)
theta1 = pi / 4
theta2 = pi / 2
rotated_vertices1 = [rotate_point(vertex, theta1) for vertex in vertices]
rotated_vertices2 = [rotate_point(vertex, theta2) for vertex in vertices]
square_bottom_right = [rotate_point((x + 1, y), theta2) + vector([1, 1]) for x, y in vertices]
square_top_right = [rotate_point((x + 1, y + 1), theta2) + vector([0, 2]) for x, y in vertices]
center = vector([0.05, 0.05])
offset = vector([0.245, -0.05])
rotated_vertices_centered = [vertex + center + offset for vertex in rotated_vertices1]
show(p + polygon(rotated_vertices_centered, fill=False, color='red') +
polygon(rotated_vertices2, fill=False, color='blue') +
polygon(square_bottom_right, fill=False, color='green') +
polygon(square_top_right, fill=False, color='purple'),
gridlines="major", axes=False, figsize=5)