Thanks for your replies. I've been busy at work so have had no time to look into your omments. I will reply with my findings as soon as possible.
Thanks again. -Marco -----Original Message----- From: ANDREW ROSS [mailto:[email protected]] On Behalf Of Andrew Ross Sent: Friday, March 30, 2012 5:53 PM To: Hazen Babcock Cc: Quezada, Marco; [email protected] Subject: Re: [Plplot-devel] Bug in extcairo driver or plstream? Marco, I tried your code with the latest SVN version and updated geom (as Hazen said) and the code seemed to work fine. Maybe you could explain in more detail what you think is wrong? Andrew On Fri, Mar 30, 2012 at 03:06:46PM -0400, Hazen Babcock wrote: > > Hi Marco, > > It looks to me like for second plot, you created a 792 x 612 page in > Cairo, but told PLplot that the page was 1152 x 528. > > Note that you don't update geom between the first and the second plots. > > -Hazen > > On 03/28/2012 04:50 PM, Quezada, Marco wrote: > > #include<stdio.h> > > #include<unistd.h> > > #include<string> > > #include<cmath> > > #include<iostream> > > #include<sstream> > > #include<cairo.h> > > #include<cairo-pdf.h> > > > > #include<plplot.h> > > #include<plstream.h> > > > > plstream *NewStream(const std::string&outputDriver, > > const std::string&geometry, > > cairo_t *context = NULL) > > { > > // Perform the plplot initialization required by your > > // task. > > plstream *pls = new plstream(); > > > > // Re-size the device view surface to the size of the cairo window > > if(geometry != "") > > { > > pls->setopt("geometry", geometry.c_str()); > > } > > > > pls->sdev(outputDriver.c_str()); > > > > pls->init(); > > > > if(context != NULL) > > { > > pls->cmd(PLESC_DEVINIT, context); > > } > > > > pls->adv(0); > > > > pls->vpor(0.1, 0.95, 0.15, 0.9); > > > > > > return(pls); > > } > > > > class Plot > > { > > public: > > > > Plot() > > { > > for(int i = 0; i< 100; ++i) > > { > > xdata[i] = i * ((2.0 * M_PI) / 100.0); > > ydata[i] = sin(xdata[i]) * 100; > > } > > } > > > > void Init() > > { > > pls->clear(); > > pls->col0(1); > > pls->wind(0.0, 2.0 * M_PI, -100.0, 100.0); > > pls->box("bcnst", 0.0, 0, "bcnstv", 0.0, 0); > > pls->col0(2); > > pls->box("g", 0.0, 0, "g", 0.0, 0); > > pls->sxax(6, 0); > > pls->syax(6, 0); > > } > > > > void Draw(int I) > > { > > PLFLT *x = xdata; > > PLFLT *y = ydata; > > pls->col0(4); > > pls->line(I, x, y); > > > > pls->flush(); > > } > > > > plstream *pls; > > PLFLT xdata[100]; > > PLFLT ydata[100]; > > > > }; > > > > int main( int argc, const char *argv[] ) > > { > > > > Plot plot; > > > > double pageW = 1152; > > double pageH = 528; > > > > std::stringstream geom; > > geom<< pageW<< "x"<< pageH; > > > > cairo_surface_t *cs1 = cairo_pdf_surface_create("cairo1.pdf", pageW, > > pageH); > > cairo_t *cairo1 = cairo_create(cs1); > > plstream *pls = NewStream("extcairo", geom.str(), cairo1); > > //plstream *pls = NewStream("xcairo", geom.str()); > > > > plot.pls = pls; > > plot.Init(); > > pls->col0(2); > > pls->lab("X axis", "Y axis", "Cairo 1"); > > > > for(int i = 0; i< 100; ++i) > > { > > plot.Draw(i); > > usleep(10000); > > } > > pls->eop(); > > cairo_show_page(cairo1); > > cairo_surface_flush(cs1); > > cairo_destroy(cairo1); > > cairo_surface_destroy(cs1); > > > > > > pageW = 11.0 * 72.0; > > pageH = 8.5 * 72.0; > > > > cairo_surface_t *cs2 = cairo_pdf_surface_create("cairo2.pdf", pageW, > > pageH); > > cairo_t *cairo2 = cairo_create(cs2); > > > > plstream *pls2 = NewStream("extcairo", geom.str(), cairo2); > > //geom.str(""); > > //geom<< pageW<< "x"<< pageH; > > //plstream *pls2 = NewStream("xcairo", geom.str()); > > > > plot.pls = pls2; > > plot.Init(); > > pls2->col0(2); > > pls2->lab("X axis", "Y axis", "Cairo 2"); > > > > for(int i = 0; i< 100; ++i) > > { > > plot.Draw(i); > > } > > pls2->eop(); > > > > cairo_show_page(cairo2); > > cairo_surface_flush(cs2); > > > > cairo_destroy(cairo2); > > cairo_surface_destroy(cs2); > > > > delete pls; > > delete pls2; > > > > return(0); > > } > > > ------------------------------------------------------------------------------ > This SF email is sponsosred by: > Try Windows Azure free for 90 days Click Here > http://p.sf.net/sfu/sfd2d-msazure > _______________________________________________ > Plplot-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/plplot-devel > ------------------------------------------------------------------------------ Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev _______________________________________________ Plplot-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/plplot-devel
