效果图:
代码:
import cv2
import numpy as np
def draw_equilateral_triangles(points):
points = np.array(points, dtype=np.float32)
triangles=[]
for i in range(len(points) - 1):
p1 = points[i]
p2 = points[i + 1]
# 边向量和中点
edge_vec = p2 - p1
midpoint = (p1 + p2) / 2
# 边长度和单位向量
length = np.linalg.norm(edge_vec)
if length == 0:
continue
unit_edge = edge_vec / length
# 逆时针旋转90度 得到垂直方向(单位向量)
perp_unit = np.array([-u