【python入门】opencv画正多边形

2025-04-25 00:50:03

1、平面上的旋转,可以用旋转矩阵左乘来实现,所以,先给出旋转矩阵:def xzjz(angle): a=angle*np.pi/180 A=np.array([[np.cos(a),-np.sin(a)], [np.sin(a),np.cos(a)]]) return A比如,旋转60°的旋转矩阵是:

【python入门】opencv画正多边形

2、用旋转矩阵可以实现旋转:def xz(pt1,pt2,angle): pt1=np.array(pt1) pt2=np.arr锾攒揉敫ay(pt2) vector0=pt2-pt1 A=xzjz(angle) pt=np.dot(A,vector0) return pt+pt2返回的是pt1绕pt2旋转之后,得到的点的坐标。

【python入门】opencv画正多边形

3、连续旋转n-1次,可以获得正n咐搭趔涮边形的n个顶点:def zdbx(pt1,pt2,n): pt1=np.array(pt1) pt2=np.arr锾攒揉敫ay(pt2) angle=360/n A=[pt1,pt2] for i in range(n-1): pt=xz(pt1,pt2,angle) pt1=pt2 pt2=pt A.append(np.int32(pt)) return np.array(A)比如,正方形的四个定点后面再重复写第一个顶点,连接起来是一个封闭的正方形。

【python入门】opencv画正多边形

4、以画布中心为坐标原点,画指定的正多边形。

【python入门】opencv画正多边形

5、plotzdbx(img,(0,0),(100,0),6)

【python入门】opencv画正多边形

6、绕画布中心旋转的正多边形。

【python入门】opencv画正多边形
【python入门】opencv画正多边形
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢