1 Star 0 Fork 0

张哲瑞/tic-tac-toe

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
square29.py 2.31 KB
一键复制 编辑 原始数据 按行查看 历史
张哲瑞 提交于 2024-07-31 09:55 . 2024/7/31
import matplotlib.pyplot as plt
import numpy as np
def calculate_subsquare_centers(corner1, corner2, corner3, corner4):
"""
计算由四个顶点组成的正方形分成九个小正方形后,每个小正方形的中心点的坐标
"""
# 将输入的四个顶点按顺序排列
corners = np.array([corner1, corner2, corner3, corner4], dtype=np.float32)
# 假设corner1是右下,corner2是左下,corner3是右上,corner4是左上
right_down, left_down, right_up, left_up = corners[0], corners[1], corners[2], corners[3]
# 计算每个边的向量
right_vector = (right_up - right_down) / 3
down_vector = (left_down - right_down) / 3
# 计算每个小正方形中心点的坐标
centers = []
for i in range(3):
for j in range(3):
center_x = right_down[0] + right_vector[0] * (2.5 - j) + down_vector[0] * (2.5 - i)
center_y = right_down[1] + right_vector[1] * (2.5 - j) + down_vector[1] * (2.5 - i)
centers.append((center_x, center_y))
return centers
# def visualize_square_with_centers(corner1, corner2, corner3, corner4, centers):
# """
# 可视化正方形及其中心点
# """
# corners = [corner1, corner2, corner3, corner4, corner1] # 按顺序连接顶点,形成正方形
#
# plt.figure(figsize=(8, 8))
# plt.plot(*zip(*corners), marker='o', color='b', linestyle='-') # 绘制正方形
#
# for i, center in enumerate(centers):
# plt.plot(center[0], center[1], 'ro') # 绘制中心点
# plt.annotate(str(i + 1), (center[0], center[1]), textcoords="offset points", xytext=(0, 5),
# ha='center') # 添加顺序标签
#
# plt.xlabel('X')
# plt.ylabel('Y')
# plt.title('Square and Subsquare Centers')
# plt.grid(True)
# plt.gca().set_aspect('equal', adjustable='box')
# plt.show()
#
#
# # 示例使用
# corner1 = (218.549, -33.6182) # 左上
# corner2 = (280.2896, -29.4903) # 左下
# corner3 = (218.2278, 36.7736) # 右上
# corner4 = (279.2795, 37.5407) # 右下
#
# centers = calculate_subsquare_centers(corner1, corner2, corner3, corner4)
# visualize_square_with_centers(corner1, corner2, corner3, corner4, centers)
#
# print("Centers in the specified order:")
# for i, center in enumerate(centers):
# print(f"Center {i + 1}: {center}")
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhangzherui666/tic-tac-toe.git
git@gitee.com:zhangzherui666/tic-tac-toe.git
zhangzherui666
tic-tac-toe
tic-tac-toe
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385