<p>我想我得到它的工作与以下:</p>
<pre><code>for i in range(N):
# Central Point Source
# z = 0
# x = 0
# y = 0
# Dispersed Source
theta = np.random.uniform(0, np.pi, 1)
phi = np.random.uniform(0, 2 * np.pi, 1)
R = np.random.uniform(0, Ro, 1)
x = R * np.sin(theta) * np.cos(phi)
y = R * np.sin(theta) * np.sin(phi) # ?
z = R * np.cos(theta)
x_vec, y_vec, z_vec, nu = particle_func(x, y, z)
particle_trace = go.Scatter3d(
x=x_vec,
y=y_vec,
z=z_vec,
mode='lines'
)
data.append(particle_trace)
while nu != 0:
x = x_vec[-1]
y = y_vec[-1]
z = z_vec[-1]
for j in range(int(nu)):
x_vec, y_vec, z_vec, nu = particle_func(x, y, z)
particle_trace_fiss = go.Scatter3d(
x=x_vec,
y=y_vec,
z=z_vec,
mode='lines'
)
data.append(particle_trace_fiss)
</code></pre>
<p>就像我想要的那样。然而,我对以下几点感到困惑:</p>
<pre><code>for j in range(int(nu)):
x_vec, y_vec, z_vec, nu = particle_func(x, y, z)
</code></pre>
<p>因为在for循环的范围内,nu的新值和nu的值一样多。每个nu值都很重要。也就是说,我打算生成一定数量的nu值。上面的问题是每个nu值都被for循环中的下一个nu值覆盖。如果生成5个nu值,技术上我需要在每个nu值上独立运行另一个for循环,并且循环继续。我希望这有道理,有什么想法吗?我在想,我可以把所有nu值加在一个向量上,得到它们吗?你知道吗</p>