我尝试做的是使用OpenCv
从4分中获得tangential quadrilateral。
我尝试了一种方法,我只取四个点的中心并添加一个圆圈。但这并非总是如此。此外,很难确定圆的半径。
很快:切向四边形是一个完全位于正方形内的圆。 e.g:
来源:https://commons.wikimedia.org/wiki/File:Tangentenviereck.svg CC BY-SA 4.0
OpenCv中有没有办法解决这个问题?
答案 0 :(得分:2)
如果你有4个点A,B,C,D你肯定已经有四边形(四边多边形)。
不能保证这个切线是切向的 - 只有当相反边长的总和相等时才是真的。
如果你真的有切向切线的顶点 - 找到边a,b,c,d和对角线p,q的长度并获得圆周半径as
r = Sqrt(4*p^2*q^2-(a^2-b^2+c^2-d^2)^2)) / (2*(a+b+c+d))
在维基页面有很多内环中心的公式,但是我使用三角法 - 得到A角的平分向量作为归一化AB和AD向量的和,将其归一化,乘以长度| AM | = r / tg(A / 2)并将结果向量添加到A。
请注意,OpenCV是用于图像处理的库,而不是用于几何计算。