Orbits#
References
Note
Because this example relies on randomness, the live version configuration is hard-coded to ensure the same results for everyone.
import k3d
import numpy as np
from k3d.colormaps import paraview_color_maps
plot = k3d.plot(grid_visible=False,
camera_auto_fit=False)
bodies_count = 40
bodies = np.random.random_sample((bodies_count, 7)).astype(np.float32)
bodies[:, 0:6] -= 0.5
bodies[:, 3:6] *= 0.05
bodies[:, 6] = (bodies[:, 6] + 0.5) * 1000
bodies[0, :] = np.array([0, 0, 0, 0, 0, 0, 1e6])
for i in range(1, bodies_count):
bodies[i, 0:3] = (bodies[i, 0:3] / np.linalg.norm(bodies[i, 0:3])) * 0.5
points = k3d.points(bodies[:, 0:3],
point_size=0.03,
color=0x3e3a3a)
plot += points
G = 6.67E-11
lines = []
speeds = []
positions = {}
for i in range(bodies_count):
lines.append([])
speeds.append([])
for t in range(500):
for i in range(bodies_count):
sum_force = np.zeros(3)
for j in range(bodies_count):
if i == j:
continue
direction = bodies[j, 0:3] - bodies[i, 0:3]
force = G * bodies[i, 6] * bodies[j, 6] * direction
force = force / (np.linalg.norm(direction) ** 3)
sum_force = sum_force + force
bodies[i, 3:6] = bodies[i, 3:6] + sum_force / bodies[i, 6]
for i in range(bodies_count):
bodies[i, 0:3] = bodies[i, 0:3] + bodies[i, 3:6] * 0.15
lines[i].append(np.copy(bodies[i, 0:3]))
speeds[i].append(np.linalg.norm(bodies[i, 3:6]))
positions[str(t * 0.01)] = np.copy(bodies[:, 0:3]).astype(np.float32)
for line, speed in zip(lines, speeds):
plot += k3d.line(np.array(line).astype(np.float32),
width=0.0002,
attribute=speed,
color_range=[0, 0.1],
color_map=paraview_color_maps.Erdc_iceFire_H)
points.positions = positions
plot.display()
plot.camera= [1.5491, -1.2661, -0.3120,
-0.1189, 0.0576, -0.1350,
0.6329, 0.7390, -0.2306]
plot.start_auto_play()
K3D panel
Controls
Full screen
cameraAutoFit
gridAutoFit
gridVisible
fpsMeter
Mode
Camera
Manipulate mode
FOV
voxelColor
lighting
time
fps
Clipping planes
Objects
Points #1
opacity
point_size
shader
visible
Line #1
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #2
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #3
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #4
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #5
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #6
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #7
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #8
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #9
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #10
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #11
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #12
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #13
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #14
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #15
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #16
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #17
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #18
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #19
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #20
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #21
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #22
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #23
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #24
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #25
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #26
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #27
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #28
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #29
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #30
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #31
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #32
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #33
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #34
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #35
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #36
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #37
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #38
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #39
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Line #40
colorLegend
vmin
vmax
opacity
radialSeg
shader
visible
Info
Js version: