pixled-lib
1.0
|
#include <signal.h>
Public Member Functions | |
float | operator() (led l, time t) const override |
Public Member Functions inherited from pixled::Function< Sine, float, float > | |
Function (Fcts &&... fcts) | |
const base::Function< typename std::tuple_element< i, decltype(args)>::type::Type > & | arg () const |
std::tuple_element< i, decltype(args)>::type::Type | call (led l, time t) const |
Additional Inherited Members | |
Public Types inherited from pixled::Function< Sine, float, float > | |
using | Type = typename base::Function< float >::Type |
Public Types inherited from pixled::base::Function< R > | |
typedef R | Type |
Protected Member Functions inherited from pixled::Function< Sine, float, float > | |
base::Function< float > * | copy () const override |
Protected Attributes inherited from pixled::Function< Sine, float, float > | |
std::tuple< const FctWrapper< Args >... > | args |
Sine wave function.
Values returned are contained in [-1, 1]
.
+
and *
operators can be used to modulate the Sine wave as required. For example, to obtain values in [0, 16]
:
More generally, to obtain values centered around a, with an amplitude of b, i.e. in [a-b, a+b]
, so the total variation is 2*b
, use the following formula:
Since the specified parameter is a pixled base::Function<float>, many type of waves can be defined.
Sine(T() / period)
Sine(X() / lambda)
Sine(X() / lambda - T() / period)
The spatial parameter X() might be replaced by Y(), or by any other coordinate dependent function. For example, to obtain a radial sine wave that originates from the point (8, 8):
See the pixled/signal/sine.cpp
example below for concrete use cases of each wave type.
Notice that, as usual, lambda
and period
might themselves by space and time dependent Functions...
float | sin parameter |
float | sin(2*PI * this->call<0>(p, t)) |
Computes the value of this Function for led l
at time t
.
l | led |
t | time |
l
at time t
. Notice that evaluating a function usually requires the recursive evaluation of other Functions (that are actually parameters of this function) until a Constant is reached for example. Implements pixled::base::Function< R >.