From e953a3a209f658cf131f2a10cbb84c2bd65da778 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Luk=C3=A1=C5=A1=20Ji=C5=99i=C5=A1t=C4=9B?= Date: Fri, 5 Dec 2025 13:55:41 +0100 Subject: [PATCH] Minor improvements --- animate_result.py | 13 +++++++++---- nbody.mo | 12 ++++++------ script.mos | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/animate_result.py b/animate_result.py index 556d579..fc49565 100755 --- a/animate_result.py +++ b/animate_result.py @@ -22,6 +22,9 @@ class MatAnimation: 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( @@ -44,10 +47,12 @@ class MatAnimation: 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): @@ -72,7 +77,7 @@ def matAniFromFile(filename): 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]", diff --git a/nbody.mo b/nbody.mo index ef1ef5e..d7f81b1 100644 --- a/nbody.mo +++ b/nbody.mo @@ -38,12 +38,12 @@ package nbody 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 diff --git a/script.mos b/script.mos index 6be1b36..17bb71c 100644 --- a/script.mos +++ b/script.mos @@ -1,3 +1,3 @@ loadFile("nbody.mo"); instantiateModel(System); -simulate(nbody.System, numberOfIntervals = 5000); +simulate(nbody.System, numberOfIntervals = 5000, startTime = 0, stopTime = 50); -- 2.30.2