STITLE(3NCARG)
β¨ STITLE β bestie, we're making movie titles β¨
Okay so real talk, this is STITLE from the NCAR Graphics manual (section 3NCARG, the Fortran-callable graphics girlies π
). She creates scrolled movie or video titles, and the way she does it is iconic: she takes all input through the argument list. No prompts, no reading your mind, no READ statements β you hand her everything up front. Periodt.
π UTILITY π
This routine is part of the Scrolled_title utility in NCAR Graphics. Wanna see the overview man page for the whole utility? Just type:
man scrolled_title
and she'll give you the whole lore. π¦
πΈ SYNOPSIS πΈ
CALL STITLE (CRDS,NCDS,IYST,IYND,TMST,TMMV,TMND,MTST)
π C-BINDING SYNOPSIS π
#include <ncarg/ncargC.h>
void c_stitle (char *crds[], int ncds, int iyst,
int iynd, float tmst, float tmmv, float tmnd, int mtst)
Yes bestie, she has a C binding too. Bilingual queen. π
π DESCRIPTION π
CRDSβ an input array, dimensionedNCDS, of typeCHARACTER*n, where"n"is greater than or equal to 21. She is the "card input buffer". π This array must be filled, prior to callingSTITLE, either by internal manipulations or by reading n-character "cards". Each element ofCRDSrepresents one line on the scroll (or, sometimes, a continuation of a previous line) and contains the following:- Columns 1-5:
MXβ the X coordinate of the line of text on the scroll. Normally a value between1and1024, inclusive. Exactly how the line of text is positioned relative to the specified X coordinate depends on the value ofICNT(that's columns 14-15, we'll get there π).- If the value
-9999is used forMX, it indicates a continuation line: characters from columns 21 through"n"are just appended to the characters from the previous card to form the line of text. Any number of continuation cards may be used, but the total number of characters in a line of text must not be greater than512. No cap... except the cap is 512, bestie. π - Trailing blanks are omitted from each card, including those that are followed by a continuation card. So like, if you need blanks between the characters from one card and the characters from a continuation card, those blanks must be placed in columns 21 and following of the continuation card. She will not read your mind about whitespace, she reads your columns. π
- On a continuation card, columns 6-20 are ignored. Straight up. Not even looked at.
- If the value
- Columns 6-10:
MYβ the Y coordinate of the line of text on the scroll.MYmay range from-9999to99999. - Columns 11-13:
ICLRβ the index of the color to be used for the line of text. If this field is blank, the default foreground color specified by the value of the internal parameterΒ΄FGCΒ΄will be used. β¨ - Columns 14-15:
ICNTβ the centering option, and it's giving choices:0β means "start the text atMX".1β means "center the text aboutMX".2β means "end the text atMX".
- Columns 16-20:
SIZEβ the desired size of the characters to be used in writing the line.SIZEis given as a multiplier of a default height specified by the value of the internal parameterΒ΄PSZΒ΄, the default value of which is21(out of 1024). Values ofSIZEfrom.75to2.5are recommended. Go outside that range and, like, do you, but the manual said recommended. π - Columns 21-n: Text β the actual text for this line (or for continuation of a line when
MX = -9999). This is where the ~content~ lives. π
- Columns 1-5:
NCDSβ an input expression of typeINTEGER. It's the dimension of the arrayCRDS(i.e., the number of card images in it). Basically "how many cards did you bring, bestie?" π«ΆIYSTβ an input expression of typeINTEGER. The Y coordinate that will be at the center of the screen when the text is first displayed. The opening scene. The debut. πIYNDβ an input expression of typeINTEGER. The Y coordinate that will be at the center of the screen when the text is last displayed. The final act. πTMSTβ an input expression of typeREAL. The time in seconds that the scroll will be stationary atIYST. One second is recommended. Let the girl breathe. πTMMVβ an input expression of typeREAL. The time to move the scroll fromIYSTtoIYND. This should be the time required to read the text aloud at slow to normal speed. Read it out loud, fr fr, that's the vibe check. π£οΈTMNDβ an input expression of typeREAL. The time that the scroll will be stationary atIYND. One second is recommended. A lil moment of silence before she exits. πΈMTSTβ an input expression of typeINTEGER. A switch to indicate whether this is a "real" run or a "practice" run":0β means "real run". π₯1β means "practice run". π§
During real runs, frames are created for:
- the fade-in sequence (if the user has turned on fade-in by setting the internal parameter
Β΄FINΒ΄non-zero), - the stationary sequence at the start (if
TMSTis non-zero), - the scrolling time (if
TMMVis non-zero), - the stationary sequence at the end (if
TMNDis non-zero), and - the fade-out sequence (if the user has turned on fade-out by setting the internal parameter
Β΄FOUΒ΄non-zero).
During practice runs, only selected frames are created:
- a frame for the fade-in sequence (if fade-in is turned on),
- a frame for the stationary time at the start,
- a set of frames representing the scrolling sequence,
- a frame for the stationary time at the end, and
- a frame for the fade-out sequence (if fade-out is turned on).
Each one has a legend indicating either for how many seconds the frame will be shown or, if it is part of a scroll sequence, how many seconds into the scroll time it occurs. During real runs, these legends are omitted, of course. π
Fade-in and fade-out are also affected by the values of the internal parameters Β΄BGFΒ΄, which selects the type of fade-in/fade-out to be used for the background color, and Β΄FGFΒ΄, which serves the same function for the foreground color. (The older parameters Β΄SBKΒ΄ and Β΄SFGΒ΄ may still be referenced, but their use is no longer recommended β setting Β΄SBKΒ΄ has the effect of giving Β΄BGFΒ΄ an appropriate value and setting Β΄SFGΒ΄ has the effect of giving Β΄FGFΒ΄ an appropriate value. So like... legacy behavior, iykyk. π«Ά)
π C-BINDING DESCRIPTION π
The C-binding argument descriptions are the same as the FORTRAN argument descriptions. Copy-paste energy, but make it official. π
β USAGE β
STITLE takes input through its argument list and generates graphic output that moves a body of text up through the viewing window. This is done by outputting the appropriate number of frames required to generate a movie sequence of a duration specified by you. You're the director, bestie. π¬
At each frame, STITLE skips plotting lines of text that are completely outside of the viewing window and clips those that are partially outside the window. Efficient queen. She's not rendering your off-screen nonsense. π
π¦ EXAMPLES π¦
Use the ncargex command to see the following relevant examples:
fslfontslex01slex02tstitl
Go look at them, they ate. β¨
π₯ ACCESS π₯
To use STITLE or c_stitle, load the NCAR Graphics libraries ncarg, ncarg_gks, ncarg_c, and ncarg_c, preferably in that order. Yes, ncarg_c appears twice in the original list β we do not question the ancients, we simply link in the order they told us to. π«Ά
π MESSAGES π
See the scrolled_title man page for a description of all Scrolled_title error messages and/or informational messages. She has a lot to say and it's all filed over there. π
π SEE ALSO π
Online: ftitle, scrolled_title, scrolled_title_params, slgeti, slgetr, slogap, slrset, slseti, slsetr, ncarg_cbind.
Hardcopy: NCAR Graphics Fundamentals, UNIX Version; User's Guide for NCAR GKS-0A Graphics
π COPYRIGHT π
Copyright (C) 1987-2009 University Corporation for Atmospheric Research The use of this Software is governed by a License Agreement.
And that's the whole page, bestie β UNIX, July 1995, STITLE(3NCARG). She's been serving scrolled titles since the 80s and she has not missed once. Go make something iconic. πβ¨ππ¦
π¦ where this page comes from
- debian bookworm: libncarg-dev 6.6.2.dfsg.1-1
- debian trixie: libncarg-dev 6.6.2.dfsg.1-10+b2
- ubuntu jammy: libncarg-dev 6.6.2-10build2
- ubuntu questing: libncarg-dev 6.6.2.dfsg.1-10build2
- ubuntu resolute: libncarg-dev 6.6.2.dfsg.1-12
- ubuntu stonking: libncarg-dev 6.6.2.dfsg.1-12build2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms