我有四个点(x1,y1)......(x4,y4)描述图像中的四个点。它们不需要处于循环次序中。我想通过加入这四个点来了解四边形的所有内部天使
所以我需要一个像
这样的功能function [theta1, theta2, theta3, theta4] = find_angels_quadrilateral([x1,y1], [x2,y2], [x3,y3], [x4,y4])
# Logic goes here
end
我已经尝试了atan2(y1-y2, x1-x2)
四次等等,但无法保证它们是循环的,因此无法继续进行。
更重要的是,任何工具箱都已在MATLAB中为我提供此功能吗?
答案 0 :(得分:1)
一种简单的方法是首先使用convhull计算点的凸包。它将以循环顺序(逆时针)返回点。
K = convhull([x1, x2, x3, x4], [y1, y2, y3, y4])
它会返回类似的内容:
K =
1
3
4
2
1
意义点[x1,y1]
是第一个,然后是[x3,y3]
,然后是[x4,y4]
等等(第一个点在末尾复制以关闭船体,所以你可以忽略它)
之后,您可以毫无问题地计算角度。