def arcMidPoint(self, prev_vertex, vertex, angle):
if len(prev_vertex) == 3:
[x1, y1, z1] = prev_vertex
else:
[x1, y1] = prev_vertex
if len(vertex) == 3:
[x2, y2, z2] = vertex
else:
[x2, y2] = vertex
angle = radians(angle / 2)
basic_angle = atan2(y2 - y1, x2 - x1) - pi / 2
shift = (1 - cos(angle)) * hypot(y2 - y1, x2 - x1) / 2 / sin(angle)
midpoint = [(x2 + x1) / 2 + shift * cos(basic_angle), (y2 + y1) / 2 + shift * sin(basic_angle)]
return midpoint
评论列表
文章目录