【python入门】opencv画正多边形
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°的旋转矩阵是:

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

3、连续旋转n-1次,可以获得正n边形的n个顶点:
def zdbx(pt1,pt2,n):
pt1=np.array(pt1)
pt2=np.array(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)
比如,正方形的四个定点后面再重复写第一个顶点,连接起来是一个封闭的正方形。

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

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

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


声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:151
阅读量:81
阅读量:152
阅读量:80
阅读量:144