我有这样的代码来生成螺旋中的点:
import numpy as np
import matplotlib.pyplot as plt
initial_radius = 0.01
n_turns = 4
final_radius = 0.1
b = (final_radius - initial_radius)/(2*np.pi*n_turns)
start_theta = np.pi/2
end_theta = 2*np.pi*n_turns
s = np.linspace(start_theta, end_theta, 300)
x = (initial_radius + b*s)*np.cos(s)
y = (initial_radius + b*s)*np.sin(s)
plt.scatter(x,y, label="spiral")
plt.gca().set_aspect('equal')
但是,这些点并不是沿着缓和曲线以相等的间距生成的。
如何更改s
的采样以使它们等距?
1条答案
按热度按时间ie3xauqp1#
一种方法是计算总长度作为
s
的函数,所以L(s)
。然后我们可以通过插值来反转这个关系,以找到s(L)
。我们可以使用它来找到s
值,给出等间距的点!要了解更多信息,你可能想google一下“arc-length parameterization”。另一种选择是通过分析方法确定弧长参数化。