Function:cs2sptxy
From S2PLOT
(Difference between revisions)
Revision as of 22:17, 6 January 2009 S2plot admin (Talk | contribs) ← Previous diff |
Current revision S2plot admin (Talk | contribs) |
||
Line 1: | Line 1: | ||
==cs2sptxy== | ==cs2sptxy== | ||
+ | Set the text and position of a prompt. | ||
==Prototype== | ==Prototype== | ||
<code><pre> | <code><pre> | ||
+ | void cs2sptxy(char *prompt, float xfrac, float yfrac); | ||
</pre></code> | </pre></code> | ||
==Description== | ==Description== | ||
+ | Set the text and position of the prompt. xfrac and yfrac are fractions of the viewport from bottom left. | ||
==See Also== | ==See Also== | ||
+ | <table> | ||
+ | <tr><td>[[Function:cs2spcb | cs2spcb]]</td><td>Set the user prompt callback.</td></tr> | ||
+ | </table> | ||
==Code Example== | ==Code Example== | ||
<code><pre> | <code><pre> | ||
- | </pre></code> | + | #include <stdio.h> |
+ | #include <stdlib.h> | ||
+ | #include "s2plot.h" | ||
- | [[S2PLOT:Function List | Back]] to S2PLOT function list. | + | /* 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; | ||
- | __NOTOC__ | + | cs2sptxy("R G B >", px, py); |
- | __NOEDITSECTION__ | + | } |
+ | 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 */ | ||
- | Back to [[Function:Template | template]] page. | + | } |
+ | |||
+ | 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> | ||
+ | |||
+ | [[S2PLOT:Function List | Back]] to S2PLOT function list. | ||
+ | |||
+ | __NOTOC__ | ||
+ | __NOEDITSECTION__ |
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
cs2spcb | Set 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.