in reply to Re^4: Make sin wave with GD
in thread Make sin wave with GD

$y2 = 200 - 200*sin($x2));

The first 200 will shift the center line of the sine so that it is along the center of the plot. The minus sign flips the sine upside down since y is increasing down, not up. Finally, the scale factor is changed to 200 so there is room for both the upper and lower halves of the sine.

That can be written without repeating the 200 as:

$y2 = 200 * (1-sin($x2));

Replies are listed 'Best First'.
Re^6: Make sin wave with GD
by Anonymous Monk on Jul 01, 2015 at 18:29 UTC
    OK that works! Does is there a generic way to do this for any values though?

      I'm not sure I understand what you are asking, but I will take a shot. If f(x) is a function whose range goes from $f_min to $f_max over the domain of interest, and the graph is of size $graph_size, then plot

      my $span = $f_max - $f_min; $y = (-f($x)-$f_min)*$graph_size/$span;

      In the case of your sine, you would have $f_min = -1; $f_max = 1; $graph_size = 400. This simplifies the the expression in my previous response.