Re: C++ code

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Dec 10 1999 - 13:15:03 MET


When you create a pad, its default world (user) coordinate range
is [0,1] in x and y.
You can set the range via TPad::Range.
When you draw high level primitives such as histograms or functions,
the pad range is automatically computed for you.
Only in the case when you draw low level primitives such as lines, text
you have to define the range.
If you do not have high level primitives, in general you want to set a
range
and also draw some axis. For that, you can use:
  TPad::DrawFrame(xmin,ymin,xmax,ymax); //sets the range and draw axis
  Create a 1-d or 2-d empty histogram and draw it

Rene Brun

Stephan Heising wrote:
> 
> Hello all,
> 
> what is the default coordinate range. In this example non is defined.
> This
> usually results in a plot drawn anywhere but not in the visible area.
> 
> Stephan Heising
> 
> >>>>>>>>>>>>>>>>>> Ursprüngliche Nachricht <<<<<<<<<<<<<<<<<<
> 
> Am 12/10/99, 9:12:25 AM, schrieb Rene Brun <Rene.Brun@cern.ch> zum Thema
> Re: C++ code:
> 
> > Hi Anton,
> > I have no problems in running your code. It is difficult to come
> > with a diagnostic without more info on your error.
> > I take this opportunity to AGAIN AND AGAIN request that the Root
> version
> > number and the machine type be always specified in the mails to
> > roottalk.
> 
> > In attachment, you will find two files:
> >  ring.cxx  to be compiled
> >  aring.C an interactive macro
> > these files are adaptations of your example and run without problems.
> 
> > Rene Brun
> 
> > Anton V. Bogomyagkov wrote:
> > >
> > > Hello,
> > > I wrote a C++ code for drawing a function. I can compile it, but when
> I
> > > try to execute the program error appears on the line where I define a
> > > pointer to a TF1 class. However, canvas is drawing and function not.
> Below
> > > is a code of my program. So, can somebody of you help me and explain
> what
> > > is wrong there?
> > > Thank you.
> > >
> > > #include <stdio.h>
> > > #include <math.h>
> > > #include "TROOT.h"
> > > //#include "TClass.h"
> > > //#include "TClassTable.h"
> > > //#include "TCollection.h"
> > > //#include "TObject.h"
> > > #include "TCanvas.h"
> > > #include "TMath.h"
> > > #include "TF1.h"
> > > #include "TApplication.h"
> > >
> > > extern void InitGui();
> > > VoidFuncPtr_t initfuncs[]={InitGui, 0};
> > > int Error;  //needed by Motif
> > >
> > > TROOT root("hello","Hello World",initfuncs);
> > >
> > > Double_t ring(Double_t *x, Double_t *p)
> > > {
> > > Double_t Pi=3.14, Dl=0.005;
> > > Double_t f=0, fx, phi,y,z;
> > > if(p[2]){
> > >  for(y=p[2];y<=p[3];y+=Dl){
> > >   z=(x[0]-y)/p[1];
> > >   fx=exp(-0.5*z*z)*sqrt(p[3]*p[3]-y*y);
> > >   f+=p[0]*fx*Dl;
> > >  }
> > >
> > >  for(y=-p[3];y<=-p[2];y+=Dl){
> > >   z=(x[0]-y)/p[1];
> > >   fx=exp(-0.5*z*z)*sqrt(p[3]*p[3]-y*y);
> > >   f+=p[0]*fx*Dl;
> > >  }
> > >
> > >  for(y=-p[2];y<=p[2];y+=Dl){
> > >   z=(x[0]-y)/p[1];
> > >   fx=exp(-0.5*z*z)*(sqrt(p[3]*p[3]-y*y)-sqrt(p[2]*p[2]-y*y));
> > >   f+=p[0]*fx*Dl;
> > >  }
> > > }
> > > return f;
> > > }
> > >
> > > int main(int argc, char **argv){
> > >
> > > TApplication theApp("App",&argc,argv);
> > >
> > > TCanvas *c1 = new TCanvas("c1","Function draw",10,10,600,450);
> > > c1->Show();
> > >
> > > TF1 *func = new TF1("ring",ring,-6,6,4);
> > > func->SetParameters(1500,0.3,1.7,1.71);
> > > func->Draw();
> > > c1->Update();
> > >
> > > theApp.Run(kTRUE);
> > >
> > > theApp.Run();
> > >
> > > return 0;
> > > }
> > > áÎÔÏÎ.



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:44 MET