繁体   English   中英

将四个x,y坐标转换为质心,宽度,高度和方向(py)

[英]convert four x,y coordinates into centroid, width height and orientation (py)

如果我有一个有角矩形的坐标列表coords = [(7, 354), (307, 339), (304, 296), (4, 311)] 我希望能够将这四个点转换为x,y,w,h,o格式。

如何将x,y对的这些转换为质心,宽度,高度和方向? 重心和宽度和高度都很容易计算。 方向如何?

理想情况下,我正在寻找在两者之间进行切换的简便方法。 恩。 convert_to_xywho()convert_to_xy_list()

p1, p2 = end[:2]
p3, p4 = end[2:]
w = math.hypot(p2[0] - p1[0], p2[1] - p1[1])
h = math.hypot(p3[0] - p2[0], p3[1] - p2[1])
c = [[p1[0], p2[0], p3[0], p4[0]], [p1[1], p2[1], p3[1], p4[1]]]
centroide = (sum(c[0])/len(c[0]),sum(c[1])/len(c[1]))

关于如何找到方向的任何建议。 并将这种方向应用于x,y,w,h,o以获得x,y对的列表

注意:我使用的是PyGame坐标系,其原点位于左上方。

方向来自一个线段的倾斜。

tan(theta) = (y2-y1) / (x2-x1)

我怀疑你可以从那里结束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM