Function:ns2vm
From S2PLOT
(Difference between revisions)
| Revision as of 01:32, 30 October 2007 S2plot admin (Talk | contribs) ← Previous diff |
Current revision S2plot admin (Talk | contribs) |
||
| Line 15: | Line 15: | ||
| * 1 = wireframe 3D cross | * 1 = wireframe 3D cross | ||
| * 2 = shaded box | * 2 = shaded box | ||
| - | * 4 = octahedron (diamond) | + | * 3 = octahedron (diamond) |
| == See Also == | == See Also == | ||
| Line 29: | Line 29: | ||
| #include <stdio.h> | #include <stdio.h> | ||
| #include <stdlib.h> | #include <stdlib.h> | ||
| + | #include <time.h> | ||
| #include "s2plot.h" | #include "s2plot.h" | ||
| Line 34: | Line 35: | ||
| { | { | ||
| int i; | int i; | ||
| - | int marker; /* Type of marker to use */ | + | int marker; /* Type of marker to use */ |
| - | XYZ xyz; /* Position */ | + | XYZ xyz; /* Position */ |
| - | COLOUR col; /* Colour */ | + | COLOUR col; /* Colour */ |
| - | float size = 0.4; /* Size of marker */ | + | float size = 0.4; /* Size of marker */ |
| - | s2opend("/?",argc, argv); /* Open the display */ | + | srand48((long)time(NULL)); /* Seed random numbers */ |
| - | s2swin(-1.,1., -1.,1., -1.,1.); /* Set the window coordinates */ | + | |
| - | s2box("BCDET",0,0,"BCDET",0,0,"BCDET",0,0); /* Draw coordinate box */ | + | s2opend("/?",argc, argv); /* Open the display */ |
| + | s2swin(-1.,1., -1.,1., -1.,1.); /* Set the window coordinates */ | ||
| + | s2box("BCDET",0,0,"BCDET",0,0,"BCDET",0,0); /* Draw coordinate box */ | ||
| marker = 0; | marker = 0; | ||
| - | for (i=0;i<12;i++) { | + | for (i=0;i<4;i++) { |
| - | xyz.x = drand48()*2.0 - 1.0; /* Random position */ | + | xyz.x = drand48()*2.0 - 1.0; /* Random position */ |
| xyz.y = drand48()*2.0 - 1.0; | xyz.y = drand48()*2.0 - 1.0; | ||
| xyz.z = drand48()*2.0 - 1.0; | xyz.z = drand48()*2.0 - 1.0; | ||
| - | col.r = drand48(); /* Randomish colour */ | + | col.r = drand48(); /* Randomish colour */ |
| - | col.g = 1.0; | + | col.g = 1.0; |
| - | col.b = 0.3; | + | col.b = 0.3; |
| - | ns2vm(marker, size, xyz, col); /* Draw the marker */ | + | ns2vm(marker, size, xyz, col); /* Draw the marker */ |
| - | marker++; | + | marker = (marker+1)%4; |
| - | if (marker == 3) marker++; /* There is no marker 3 */ | + | |
| - | if (marker > 4) marker = 0; | + | |
| } | } | ||
| - | s2show(1); /* Open the s2plot window */ | + | s2show(1); /* Open the s2plot window */ |
| - | + | ||
| return 1; | return 1; | ||
| } | } | ||
| + | |||
| </pre></code> | </pre></code> | ||
| [[S2PLOT:Function List | Back]] to S2PLOT function list. | [[S2PLOT:Function List | Back]] to S2PLOT function list. | ||
| __NOTOC__ | __NOTOC__ | ||
| __NOEDITSECTION__ | __NOEDITSECTION__ | ||
Current revision
ns2vm
Draw a marker - vector input
Prototype
void ns2vm(int type, float size, XYZ P, COLOUR col);
Description
Draw a marker at position P, with size and RGB colour col, using vector data structures. Argument type should be one of:
- 0 = tetrahedron (pyramid)
- 1 = wireframe 3D cross
- 2 = shaded box
- 3 = octahedron (diamond)
See Also
| ns2m | Draw a marker |
| struct_COLOUR | Data structure for (r,g,b) colour indices. |
| struct_XYZ | Data structure for (x,y,z) coordinates. |
Code Example
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "s2plot.h"
int main(int argc, char *argv[])
{
int i;
int marker; /* Type of marker to use */
XYZ xyz; /* Position */
COLOUR col; /* Colour */
float size = 0.4; /* Size of marker */
srand48((long)time(NULL)); /* Seed random numbers */
s2opend("/?",argc, argv); /* Open the display */
s2swin(-1.,1., -1.,1., -1.,1.); /* Set the window coordinates */
s2box("BCDET",0,0,"BCDET",0,0,"BCDET",0,0); /* Draw coordinate box */
marker = 0;
for (i=0;i<4;i++) {
xyz.x = drand48()*2.0 - 1.0; /* Random position */
xyz.y = drand48()*2.0 - 1.0;
xyz.z = drand48()*2.0 - 1.0;
col.r = drand48(); /* Randomish colour */
col.g = 1.0;
col.b = 0.3;
ns2vm(marker, size, xyz, col); /* Draw the marker */
marker = (marker+1)%4;
}
s2show(1); /* Open the s2plot window */
return 1;
}
Back to S2PLOT function list.
