I need to label my contours with floating point values. However, I seem 
to get strange results.
I have a simplified example of what occurs in the program below. It 
draws an ellipse with contour value 1.0e10, i.e. x*x/4 + y*y = 1.0e10. 
The contour is good. The label is written as 1.0?#???10 where ? stands 
for a character I cannot recognise in this context. What am I doing wrong?

/* Test of labelling contours by floats */
#include "plplot.h"

double xMin,xMax,yMin,yMax,dx,dy;

double f(double x, double y)
{
  return x*x/4 + y*y;
}

void transform(double i, double j, double *x, double *y, void *psiData)
{
  *x = xMin + i*dx; *y = yMin + j*dy;
}

int main()
{
   int i,j,m,n,nLevels= 1;
   double x,y,**z;
   double pLevels[] = {1.0e10};
   m = 32; n = 16;
   xMin = -2.5e5; xMax = 2.5e5; yMin = -1.5e5; yMax =1.5e5;
   dx = (xMax-xMin)/m; dy = (yMax-yMin)/n;
   plAlloc2dGrid(&z,m+1,n+1);
   for(i=0; i <= m; i++) for(j=0; j <= n; j++)
   {
    transform(i,j,&x,&y,NULL); z[i][j] = f(x,y);
   }
   plsfnam("Labelling.ps"); plsori(1);plsdev("ps");plinit(); 
plenv(xMin,xMax,yMin,yMax,1,0);
   pl_setcontlabelformat(1,2); pl_setcontlabelparam(0.01,0.5,0.3,1);
plcont((PLFLT_MATRIX)z,m+1,n+1,1,m,1,n,pLevels,nLevels,transform,NULL);
   pllab("x","y","Ellipse");
   plFree2dGrid(z,m+1,n+1);
   plend();
   return 1;
}

-- 
Peter Williams


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Plplot-general mailing list
Plplot-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-general

Reply via email to