15 for(
unsigned i = 0; i < p.
size(); i++) {
26 cairo_rel_line_to(cr, 0, 10);
33 cairo_rel_line_to(cr, 10, 0);
47class PwToy:
public Toy {
48 void draw(
cairo_t *cr, std::ostringstream *notify,
int width,
int height,
bool save, std::ostringstream *timer_stream)
override {
50 cairo_set_line_width (cr, 1);
75 *notify <<
"total pieces: " << pws.
size();
86int main(
int argc,
char **argv) {
87 init(argc, argv,
new PwToy());
Conversion between Bezier control points and SBasis curves.
void cairo_pw(cairo_t *cr, Piecewise< SBasis > p)
Adaptor that creates 2D functions from 1D ones.
Range of real numbers that is never empty.
Function that interpolates linearly between two values.
Function defined as discrete pieces.
void offsetDomain(double o)
void scaleDomain(double s)
std::vector< double > cuts
virtual int should_draw_bounds()
virtual bool should_draw_numbers()
virtual void save(FILE *f)
virtual void draw(cairo_t *cr, std::ostringstream *notify, int w, int h, bool save, std::ostringstream *timing_stream)
Various utility functions.
SBasisN< n > reciprocal(LinearN< n > const &a, int k)
SBasisN< n > sqrt(SBasisN< n > const &a, int k)
Bezier integral(Bezier const &a)
Piecewise< SBasis > log(SBasis const &f, double tol=1e-3, int order=3)
void cairo_move_to(cairo_t *cr, Geom::Point p1)
void cairo_d2_sb(cairo_t *cr, Geom::D2< Geom::SBasis > const &p)
Piecewise function class.
void cairo_pw(cairo_t *cr, Piecewise< SBasis > p)
void cairo_horiz(cairo_t *cr, double y, vector< double > p)
Piecewise< SBasis > xlogx(Interval in)
void cairo_vert(cairo_t *cr, double x, vector< double > p)
some std functions to work with (pw)s-basis
Polynomial in symmetric power basis (S-basis)
void cairo_set_source_rgba(cairo_t *cr, colour c)
void init(int argc, char **argv, Toy *t, int width=600, int height=600)