[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Graphing and right-justified text



In article <gat-260195114149@milo.jpl.nasa.gov>, gat@robotics.jpl.nasa.gov
(Erann Gat) wrote:

|1.  I need to graph a function in MCL with nice looking axes, labels,
|etc.  Has anyone written code to do this?

I *THINK* there's some graphing code at ftp.combridge.apple.com, but
that's just from posts I've seen here.

|2.  How do I draw right-justified text?  i.e. how do I determine how big
|my text image is going to be before I draw it so I can figure out where
|to start drawing it?  (This is for drawing axis labels.)

;;;;by hand calculation...
STRING-WIDTH string &optional font-spec
[Function]
returns the width in pixels of string, as if it were displayed using the
font, size and style of font-spec. 

FONT-INFO &optional font-spec
[Function]
returns four values, giving the ascent, descent, max-width, and leading
for font-spec , which defaults to the current font of the current
grafport.

font-line-height will give you the full height of a font, although its
on-line documentation seems to have gone walkabout in my MCL.  :-?

Also, the trivial definitions for font-ascent, font-descent, font-widmax,
font-leading, and font-height can be found in Lynch Lib which is also on
ftp.cambridge.apple.com.

Be careful with font-line-height versus font-height...it's real easy to
think you've got it right until you try larger fonts, and you realize
you've got too much vertical space.  :-)



*ORRRRRRR...*

;;;;skanky hacker way
(rlet ((rect :rect :topleft #@(-30000 <top>) :botright #@(<right> 30000)))
  (with-pstrs ((s <string>))
    (let ((len (%get-byte s)))
      (#_TextBox (%incf-macptr s) len rect #$TEJustRight))))

-- 
-- 
--
-- "TANSTAAFL"  Rich lynch@ils.nwu.edu