简介
文中主要帮助一位小哥实现对圆的任意切分,切分需要从给定点,和给定角度进行切分。现把算法记录如下,需要使用的可以参考,当然比较简单。算法和效果如下。
代码
import math
import matplotlib.pyplot as plt
import numpy as np
# def return_xy_list(alfa,):
# pass
r = 11.599
xa = -11.599
ya = 0.645941173792
x0 = 0
y0 = 0
alfa = 2
list_x=[]
list_y=[]
N=int(360/alfa)
for i in range(N):
theta=math.atan2(ya,xa)
theta2=math.atan2(ya,xa)+math.pi
print theta,theta2
x=x0+r*math.cos(theta-alfa*math.pi/180)
y = y0 + r * math.sin(theta - alfa*math.pi/180)
list_x.append(x)
list_y.append(y)
xa=x
ya=y
theta1 = np.arange(0, 2*np.pi, 0.01)
xx = x0 + r * np.cos(theta1)
yy = y0 + r * np.sin(theta1)
fig = plt.figure()
axes = fig.add_subplot(111)
axes.plot(xx, yy)
axes.axis('equal')
plt.title('test')
print list_x
print list_y
# print list_x[3]
# print list_y[3]
plt.plot(list_x,list_y)
axes.scatter(list_x, list_y, s=60, c='k', marker='x')
plt.show()
效果
切分30度
切分2度