ISOSRF(3NCARG)
ISOSRF πβ¨ (the NCAR Graphics manual, bestie edition)
okay so. hi. you're here because you wanna draw an isosurface and you opened the NCAR GRAPHICS manual like a good little student. slay. this page is literally the whole vibe. let's get into it π«Ά
β¨ NAME β¨
ISOSRF β draws an isosurface. that's it. that's the whole thing. it draws the surface. π
π SYNOPSIS π
CALL ISOSRF (F,LU,MU,LV,MV,MW,EYE,MUVWP2,SLAB,FISO,IFLAG)
πΈ C-BINDING SYNOPSIS πΈ
#include <ncarg/ncargC.h>
void c_isosrf (float *f, int lu, int mu, int lv, int mv,
int mw, float eye[3], int muvwp2, float *slab, float fiso,
int iflag)
π¦ UTILITY π¦
this routine is part of the Isosurface utility in NCAR Graphics, no cap. if you want the big-picture overview of the whole utility, just run man isosurface and let it cook. π
π DESCRIPTION π
here come the arguments, bestie. every single one. buckle up.
Fβ an input array of typeREAL, dimensionedLU x LV x m, wheremis greater than or equal toMW. it's a three-dimensional array of data defining the functionf(u,v,w). and listen β only the portion of the array made of elementsF(IU,IV,IW), forIU = 1toMU,IV = 1toMV, andIW = 1toMW, is gonna get used. that might be the whole array, might not, we don't judge. the data are considered to lie in a box in 3-space with opposite corners (in the UVW coordinate system) at(1.,1.,1.)and(REAL(MU),REAL(MV),REAL(MW)). andF(IU,IV,IW)is considered to be the value of the functionfat the point(REAL(IU),REAL(IV),REAL(IW)). periodt.LUβ an input expression of typeINTEGER, and it's the first dimension of the arrayF. πMUβ an input expression of typeINTEGERthat defines the range to be used for the first subscript of the arrayF.LVβ an input expression of typeINTEGER, the second dimension of the arrayF. she's giving dimension energy.MVβ an input expression of typeINTEGERthat defines the range to be used for the second subscript of the arrayF.MWβ an input expression of typeINTEGERthat defines the range to be used for the third subscript of the arrayF. third one. we love consistency.EYEβ an input array of typeREAL, dimensioned3, and it's the position of the eye in the UVW coordinate system. the eye position, at(EYE(1),EYE(2),EYE(3)), must be outside the box containing the data. the point being looked at is at the center of the data box, and the projection plane is perpendicular to the line of sight. and while you're still gaining experience with the routine, a good choice forEYEis(5.*REAL(MU),3.5*REAL(MV),2.*REAL(MW)). write that down. βοΈMUVWP2β an input expression of typeINTEGERwith the valueMAX(MU,MV,MW)+2. the name literally spells it out, iconic.SLABβ a scratch array of typeREAL, dimensioned at leastMUVWP2 x MUVWP2. it's a workspace forISOSRF. just let her do her thing in there.FISOβ an input expression of typeREAL, and it's the value offisoin the equationf(u,v,w)=fiso, which defines the isosurface to be drawn. this is the whole point of the whole routine, no pressure. π₯IFLAGβ an input expression of typeINTEGERthat serves two purposes, she's multitalented:- the absolute value of
IFLAGdetermines which type of lines are drawn to approximate the isosurface. three types of lines are considered: lines of constant U, lines of constant V, and lines of constant W. the following table lists the types of lines drawn for various values ofABS(IFLAG):
- the absolute value of
ABS(IFLAG) Constant U Constant V Constant W
1 no no yes
2 no yes no
3 no yes yes
4 yes no no
5 yes no yes
6 yes yes no
7 yes yes yes
- the sign of
IFLAGdetermines what is inside and what is outside the solid bounded by the isosurface, and thus which lines are visible and what is done at the boundary of the box containing the data. ifIFLAGis positive, values greater thanFISOare considered to be inside the solid formed by the isosurface. ifIFLAGis negative, values less thanFISOare considered to be inside the solid formed by the isosurface. and if the algorithm draws a cube, reverse the sign ofIFLAG. yeah. noted. π«‘
π C-BINDING DESCRIPTION π
the C-binding argument descriptions are the same as the Fortran argument descriptions, with the following exceptions, bestie:
fβt is dimensioned mw by mv by mumuβ the third dimension of the arrayfmwβ the first dimension of the arrayf
okay so yeah the dimensions get shuffled around in C-land. do not come for me, that's just what the page says. π
β USAGE β
- transformations can be achieved by adjusting scaling statement functions in
ISOSRF,SET3D, andTR32. cute, customizable, we love. - the hidden-line algorithm is not exact, so visibility errors can occur. π yeah. heads up. she's approximate, she's doing her best.
- three-dimensional perspective character labeling of isosurfaces is possible by calling the routine
PWRZI. slay. π
π§ EXAMPLES π§
use the ncargex command to see the following relevant examples: tisosr, tpwrzi, fisissrf, fispwrzi. go look at them. they ate. π
π ACCESS π
to use ISOSRF or c_isosrf, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order. in that order. did you hear me. in that order. π«Ά
π SEE ALSO π
- Online:
isosurface,isosurface_params,ezisos,isgeti,isgetr,isseti,issetr,pwrzi,ncarg_cbind - Hardcopy:
NCAR Graphics Fundamentals, UNIX Version
π COPYRIGHT π
Copyright (C) 1987-2009 University Corporation for Atmospheric Research The use of this Software is governed by a License Agreement.
okay that's the whole page, bestie, you're fully educated now. β¨
UNIX Β· March 1993 Β· ISOSRF(3NCARG) β yeah she's an elder but she still serves. go draw that isosurface. i believe in you. ππ¦πΈ
π¦ where this page comes from
- epel 9: ncl-devel 6.6.2-59.el9 Β· LicenseRef-Callaway-BSD
- fedora 43: ncl-devel 6.6.2-58.fc43 Β· LicenseRef-Callaway-BSD
- fedora 44: ncl-devel 6.6.2-62.fc44 Β· LicenseRef-Callaway-BSD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms