self.lines = [];
self.fig = plt.figure();
self.axes = self.fig.add_subplot(projection="3d");
+ self.axes.set_xlabel("x");
+ self.axes.set_ylabel("y");
+ self.axes.set_zlabel("z");
def plot(self, name_x, name_y, name_z):
line, = self.axes.plot(
def update(self, frame):
for line in self.lines:
+ from_frame = 0;
+ to_frame = frame;
line.line.set_data([
- self.data[line.name_x][:frame],
- self.data[line.name_y][:frame]]);
- line.line.set_3d_properties(self.data[line.name_z][:frame]);
+ self.data[line.name_x][from_frame:to_frame],
+ self.data[line.name_y][from_frame:to_frame]]);
+ line.line.set_3d_properties(self.data[line.name_z][from_frame:to_frame]);
return [line.line for line in self.lines];
def transpose_strings(array):
ani = matAniFromFile(sys.argv[1]);
-for i in range(1,10):
+for i in range(1,11):
ani.plot(
"p[" + str(i) + "].pos[1]",
"p[" + str(i) + "].pos[2]",
initial equation
for i in 1:N loop
- p[i].pos[1] = (i / N) ^ 2;
- p[i].pos[2] = ((i - 1) / N) ^ 2;
- p[i].pos[3] = 0;
- p[i].speed[1] = 0;
- p[i].speed[2] = 0;
- p[i].speed[3] = 0;
+ p[i].pos[1] = sin(i);
+ p[i].pos[2] = cos(i);
+ p[i].pos[3] = sin(3 * i);
+ p[i].speed[1] = cos(2 * i);
+ p[i].speed[2] = sin(3 * i);
+ p[i].speed[3] = cos(i);
end for;
equation
loadFile("nbody.mo");
instantiateModel(System);
-simulate(nbody.System, numberOfIntervals = 5000);
+simulate(nbody.System, numberOfIntervals = 5000, startTime = 0, stopTime = 50);