This is an old revision of the document!
SignalGenerator(<-interval <-sigFrequency <-phaseShift false <-signalType) ->sigValue
Computes the value for a given signal waveform and pushes it to the stack.
A function to derive the y-coordinate for a given x-co-ordiante on a graph line following one of the indicated wave patterns. Uselful to animate an object or to a given pattern over time. Could be used for instance to vary output from an emitter. Oscillating rightness of light source or beacon; Oscillating strength of an emitter over time - both of these can be thought of as a a use case for this function.
Arguments and type in order:
Signal types.
The phase difference or phase shift as it is also called of a Sinusoidal Waveform is the angle Φ (Greek letter Phi), in degrees or radians that the waveform has shifted from a certain reference point along the horizontal zero axis. In other words phase shift is the lateral difference between two or more waveforms along a common axis and sinusoidal waveforms of the same frequency can have a phase difference.
The phase difference, Φ of an alternating waveform can vary from between 0 to its maximum time period, T of the waveform during one complete cycle and this can be anywhere along the horizontal axis between, Φ = 0 to 2π (radians) or Φ = 0 to 360o depending upon the angular units used.
# On a map with terrain of 200 in X direction and at least 150 in Z direction (3D coordinates) # generate a sine wave of creeper across the map. 200 ->numFrames ->frequency (1 div (AsFloat (<-numFrames))) 0 ->phaseShift false ->invert 1 ->signalType #sine do (<-numFrames 0) SignalGenerator(I <-frequency <-phaseShift <-invert <-signalType ) ->sigValue round (<-sigValue) 2) ->sigValue print3 (I " : " <-sigValue ) SetCreeper(I 75 add (<-sigValue mul (50)) 15 true) loop