From: Lukáš Jiřiště Date: Fri, 5 Dec 2025 12:55:41 +0000 (+0100) Subject: Minor improvements X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=e953a3a209f658cf131f2a10cbb84c2bd65da778;p=nbody.git Minor improvements --- 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);