Function:cs2sptxy

From S2PLOT

(Difference between revisions)
Jump to: navigation, search
Revision as of 22:55, 7 January 2009
S2plot admin (Talk | contribs)

← Previous diff
Current revision
S2plot admin (Talk | contribs)

Line 19: Line 19:
<code><pre> <code><pre>
 +#include <stdio.h>
 +#include <stdlib.h>
 +#include "s2plot.h"
 +
 +/* Global variable */
 +float r = 0, g = 0, b = 0; /* Background colour */
 +
 +void pcb(char *string)
 +{
 + int res; /* How many numbers entered? */
 + float rr, gg, bb; /* Local variables */
 + res = sscanf(string,"%f %f %f",&rr,&gg,&bb); /* Read from prompt string */
 + if (res == 3) {
 + r = rr; /* Change background colour */
 + g = gg;
 + b = bb;
 + }
 +
 +/* Change where the prompt appears next time */
 + float px = drand48()*0.6 + 0.2;
 + float py = drand48()*0.6 + 0.2;
 +
 + cs2sptxy("R G B >", px, py);
 +}
 +
 +void cb(double *t, int *kc)
 +{
 + ss2sbc(r, g, b); /* Set background colour */
 + ss2sfc(1-r, 1-g, 1-b); /* Choose sensible foreground */
 + s2scr(32, 1-r, 1-g, 1-b); /* Create a new colour index */
 + s2sci(32); /* Set colour to this index */
 + s2textxy(-1,0,0,"Press ~ then enter R G B values e.g 1 1 1");
 + /* Write some text */
 +
 +}
 +
 +int main(int argc, char *argv[])
 +{
 + s2opend("/s2mono", argc, argv); /* Open in mono mode */
 + s2swin(-1.,1., -1.,1., -1.,1.); /* Set the window coordinates */
 + s2box("BCDET",0,0,"BCDET",0,0,"BCDET",0,0); /* Draw coordinate box */
 +
 + cs2scb(cb); /* Install dynamic callback */
 +
 + char string[32]; /* Allocate prompt string memory */
 + cs2spcb(pcb, string); /* Install a prompt callback */
 +
 + s2lab("","","","Demonstrates positioning of the prompt");
 +
 + s2show(1); /* Open the s2plot window */
 +
 + return 1;
 +}
</pre></code> </pre></code>

Current revision

cs2sptxy

Set the text and position of a prompt.

Prototype

void cs2sptxy(char *prompt, float xfrac, float yfrac);

Description

Set the text and position of the prompt. xfrac and yfrac are fractions of the viewport from bottom left.

See Also

cs2spcbSet the user prompt callback.

Code Example

#include <stdio.h>
#include <stdlib.h>
#include "s2plot.h"

/* Global variable */
float r = 0, g = 0, b = 0;                      /* Background colour */

void pcb(char *string)
{
   int res;                                     /* How many numbers entered? */
   float rr, gg, bb;                            /* Local variables */
   res = sscanf(string,"%f %f %f",&rr,&gg,&bb); /* Read from prompt string */
   if (res == 3) {
      r = rr;                                   /* Change background colour */
      g = gg;
      b = bb;
   }

/* Change where the prompt appears next time */
   float px = drand48()*0.6 + 0.2;
   float py = drand48()*0.6 + 0.2;

   cs2sptxy("R G B >", px, py);
}

void cb(double *t, int *kc)
{
   ss2sbc(r, g, b);                             /* Set background colour */
   ss2sfc(1-r, 1-g, 1-b);                       /* Choose sensible foreground */
   s2scr(32, 1-r, 1-g, 1-b);                    /* Create a new colour index */
   s2sci(32);                                   /* Set colour to this index */
   s2textxy(-1,0,0,"Press ~ then enter R G B values e.g 1 1 1");
                                                /* Write some text */

}

int main(int argc, char *argv[])
{
   s2opend("/s2mono", argc, argv);             /* Open in mono mode */
   s2swin(-1.,1., -1.,1., -1.,1.);              /* Set the window coordinates */
   s2box("BCDET",0,0,"BCDET",0,0,"BCDET",0,0);  /* Draw coordinate box */

   cs2scb(cb);                                  /* Install dynamic callback */

   char string[32];                             /* Allocate prompt string memory */
   cs2spcb(pcb, string);                        /* Install a prompt callback */

   s2lab("","","","Demonstrates positioning of the prompt");

   s2show(1);                                   /* Open the s2plot window */

   return 1;
}

Back to S2PLOT function list.


Personal tools