gnuplot
: Cosine oscillating on arbitrary function
To let a cosine oscillate on an "arbitrary" function,
when the function goes up the x coordinate might go backwards,
so we can't express this as a single-valued function from x to y.
But we can use parametric curves, instead; they go from a separate parameter,
t, to points (x(t), y(t)). (In gnuplot
, this is set parametric
.)
As starter, here is what the final result will look like
for cosine oscillating on cosine:
This is what motivated myself to write up a blog post about the topic.
gnuplot
source code of cosine_on_cosine
:
#!/usr/bin/gnuplot -persist
set parametric
f(x) = cos(x*2.*pi)
fDeriv(x) = -sin(x*2.*pi)
g(x) = 0.1*cos(8.*x*2.*pi)
periods=3
set title GPFUN_g.' on '.GPFUN_f
set samples periods*100
plot [0:periods][-0.5:3.5][-2:2] \
t, f(t) with points, \
t + cos(atan(fDeriv(t)) + pi/2.)*g(t), f(t) + sin(atan(fDeriv(t)) + pi/2.)*g(t) with points
set samples 100
...
[2020-07-27] Sadly, I never got around to write up the full blog post, and now have already forgotten all the details. Let's get this published anyway, now, so I can get on with other things, here...
(Created Thu 09 Apr 2020 02:40:08 CEST, published around Mon 27 Jul 2020 22:40:00 CEST.)