--[[ Construction des dessins illustrant le mécanisme des marées Building a few drawings for the explanation of tides Copyright (C) 2018 Jean Forget This program is distributed under the same terms as Perl 5.16.3: GNU Public License version 1 or later and Perl Artistic License. Here is the summary of GPL: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., https://www.fsf.org/. ]] local substr = string.sub; local floor = math.floor; local sin = math.sin; local pi = math.pi; function battement(amp1, puls1, amp2, puls2) tex.print("\\begin{mplibcode}\n"); tex.print("beginfig(1);\n"); local dx = 0.01; local echelle_x = 30; tex.print("draw (0,0)"); for x = dx, 4 * pi, dx do tex.print("..(" .. (x * echelle_x) .. "," .. (amp1 * sin(puls1 * x)) .. ")"); end; tex.print(";\n"); local decalage = -1.2 * (amp1 + amp2); tex.print("draw (0," .. decalage .. ")"); for x = dx, 4 * pi, dx do tex.print("..(" .. (x * echelle_x) .. "," .. (decalage + amp2 * sin(puls2 * x)) .. ")"); end; tex.print(";\n"); local decalage = -1.2 * (2 * amp1 + 3 * amp2); tex.print("draw (0," .. decalage .. ")"); for x = dx, 4 * pi, dx do tex.print("..(" .. (x * echelle_x) .. "," .. (decalage + amp1 * sin(puls1 * x) + amp2 * sin(puls2 * x)) .. ")"); end; tex.print(";\n"); tex.print("endfig;\n"); tex.print("\\end{mplibcode}\n"); tex.print("\\eject\n"); end