CMFX(3NCARG)

Hey bestie! πŸ’– Welcome to the CMFX(3NCARG) page from NCAR GRAPHICS β€” the manual for converting from metacode coordinates to fractional coordinates. It's giving coordinate transformation realness. Let's go! ✨

πŸ’– NAME πŸ’–

CMFX β€” Converts from metacode coordinates to fractional coordinates.


And that's the CMFX(3NCARG) page from UNIX, March 1993. Short, sweet, and to the point. πŸ“ Now buckle up for the SPPS_converters(3NCARG) page β€” the whole squad of coordinate converters! πŸ‘‘

✨ SPPS_converters(3NCARG) ✨

This is the SPPS_converters(3NCARG) page from NCAR GRAPHICS. Let's go!

πŸ’– NAME πŸ’–

spps_converters β€” A set of functions, each of which transforms a coordinate from one of the NCAR Graphics coordinate systems to another. The complete list of functions is as follows: CFUX, CFUY, CMFX, CMFY, CMUX, CMUY, CPFX, CPFY, CPUX, CPUY, CUFX, CUFY, KFMX, KFMY, KFPX, KFPY, KMPX, KMPY, KPMX, KPMY, KUMX, KUMY, KUPX, and KUPY. That's the whole roster, bestie. πŸ“‹

πŸ”₯ STATUS πŸ”₯

Okay so real talk: Plotter Address Units (PAUs) and Metacode Units (MUs) are no longer used in NCAR Graphics. So like, all functions with either an M or a P as the second or third letter of the function name are considered obsolete. They're giving legacy energy, and not in a cute way. πŸ’€

The current recognized coordinate systems are GKS world coordinates, GKS normalized device coordinates, NCAR Graphics fractional coordinates, and NCAR Graphics user coordinates. If you want the full descriptions of these coordinate systems, check the NCAR Graphics document "NCAR Graphics Fundamentals, UNIX Version". It's iconic, trust. πŸ“–

The following definitions of the PAU coordinate system and the MU coordinate system are provided for the purpose of interpreting and converting codes which use PAUs or MUs:

The plotter coordinates of a point are integers IPX and IPY, where IPX is between 1 and 2**MX and IPY is between 1 and 2**MY. MX and MY are internal parameters of SPPS; each has a default value of 10. Values of MX and MY can be set by calling the routines SETI or SETUSV and retrieved by calling the routines GETSI or GETUSV. Slay. ✨

The metacode coordinates of a point are integers IMX and IMY between 0 and 32767 inclusive. The area addressed is a square in a "metacode space" that is usually mapped into a square subset of the addressable area of the plotting device. Metacode coordinates were used in calls to the routine PLOTIT and are returned in calls to FL2INT. That's the lore. πŸ“œ

🌈 SYNOPSIS 🌈

Here's the vibe check on the current calls:

Current:
X = CFUX (RX),  Y = CFUY(RY)
X = CUFX (RX),  Y = CUFY(RY)

And the obsolete ones β€” they're still here for the history books, but don't use them unless you're feeling nostalgic:

Obsolete:
X = CMUX (IX),  Y = CMUY(IY)
X = CPUX (IX),  Y = CPUY(IY)
X = CMFX (IX),  Y = CMFY(IY)
X = CPFX (IX),  Y = CPFY(IY)
I = KFMX (RX),  J = KFMY(RY)
I = KUMX (RX),  J = KUMY(RY)
I = KFPX (RX),  J = KFPY(RY)
I = KUPX (RX),  J = KUPY(RY)
I = KPMX (IX),  J = KPMY(IY)
I = KMPX (IX),  J = KMPY(IY)

πŸ’… C-BINDING SYNOPSIS πŸ’…

#include <ncarg/ncargC.h>

float c_cfux (float rx)

float c_cfuy (float ry)

float c_cufx (float rx)

float c_cufy (float ry)

πŸ¦‹ DESCRIPTION πŸ¦‹

Let's decode these arguments, bestie:

  • RX β€” an input expression of type REAL. It's an X coordinate in the coordinate system specified by the second letter of the function name. So in a reference to CFUX, RX is a fractional X coordinate; in a reference to CUFX, RX is a user X coordinate. ✨
  • RY β€” an input expression of type REAL. It's a Y coordinate in the coordinate system specified by the second letter of the function name. In a reference to CFUY, RY is a fractional Y coordinate; in a reference to CUFY, RY is a user Y coordinate. πŸ’–
  • IX and IY β€” these only show up as arguments in references to some of the obsolete functions. They're input expressions of type INTEGER, specifying the X and Y coordinates of a point in either PAUs or MUs (depending on the second letter of the function name).

Now the naming tea β˜•:

  • The first letter of the function name is a C if the result is of type REAL and a K if the result is of type INTEGER (the latter only happens for some of the obsolete ones). This conforms to the usual FORTRAN convention for implicit typing.
  • The second letter of the function name specifies the coordinate system of the argument.
  • The third letter of the function name specifies the coordinate system of the functional result. In references to CFUX and CFUY, the result is in the user system; in references to CUFX and CUFY, the result is in the fractional system.
  • The fourth letter of the function name is an X or a Y, depending on whether an X or a Y coordinate is being converted.

✨ C-BINDING DESCRIPTION ✨

The C-binding argument description is literally the same as the FORTRAN argument description. No cap. 🧒

πŸŽ€ EXAMPLES πŸŽ€

Wanna see these in action? Use the ncargex command to peep these relevant examples that use coordinate converters: mpex10, cbex10, sfex02, epltch. Obsessed. 😍

And this command right here: ncargex -n mpex10 will load the driver mpex10.f into your current working directory where you can examine the file using a local editor, or the UNIX more command. Slay. πŸ’…

πŸ‘‘ ACCESS πŸ‘‘

So back in the day there were 24 conversion functions in the original set. These functions (12 for the X coordinate of a point, and 12 for the Y coordinate) allowed you to convert between any combination of PAUs, MUs, fractional coordinates, and user coordinates. But PAUs and MUs are now obsolete, so only four of the conversion functions are still pertinent: CFUX and CFUY let you convert the X and Y coordinates of a point from the fractional system to the user system, while CUFX and CUFY do the opposite. The rest are giving retired. πŸ’€

To use any of the conversion routines, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order. ✨

🌸 SEE ALSO 🌸

Online: cfux, cfuy, cmfx, cmfy, cmux, cmuy, cpfx, cpfy, cpux, cpuy, cufx, cufy, kfmx, kfmy, kfpx, kfpy, kmpx, kmpy, kpmx, kpmy, kumx, kumy, kupx, kupy, spps, ncarg_cbind. That's the whole friend group. πŸ‘―

Hardcopy: NCAR Graphics Fundamentals, UNIX Version; User's Guide for NCAR GKS-0A Graphics. For the physical media girlies. πŸ“š

Copyright (C) 1987-2009 β€” University Corporation for Atmospheric Research. The use of this Software is governed by a License Agreement. Legal bestie vibes. βš–οΈ


And that's a wrap on the UNIX, March 1993, SPPS_converters(3NCARG) page! Stay slay, bestie! πŸ’…βœ¨