updated 2004-02-03
This is just something I threw together that I thought you might find useful. Comments?
This page is about the process of creating graphics to display on a computer screen.
related pages:
The comp.graphics.* series of newsgroups...
Computer graphics tools intended to be used by graphic artists to create art.
Date: Tue, 21 Apr 1998 15:18:47 -0400
From: Eric Haines
Reply-To:
Organization: Autodesk, Inc.
MIME-Version: 1.0
To:
Subject: Ray Tracing News archive's new location
Hi,
You're receiving this note because you've got a pointer on one (or more)
of your web pages that points to an old archive of The Ray Tracing News:
http://www.povray.org/rtn - old, missing some issues
This newsletter now has an official site which I maintain and update -
other mirror sites are a year out of date or more. I would appreciate it
if you changed your link to this new site (which has actually been
around for a number of years - it's stable):
http://www.acm.org/tog/resources/RTNews/html/
Thanks!
Eric Haines
http://www.acm.org/tog/editors/erich/
p.s. another link you may find of interest:
http://www.acm.org/tog/Software.html - please do let me know if you've
found any other good (free, with source) graphics software out there.
After a little experimentation, here's how I scanned photos last time.
photo scanning
There's probably a better way ...
The 2 adjustment dialogs should already be open; if not, open them with Tools | Exposure Adjustment and Tools | Color Adjustment.
(these settings should already be enabled: Output type: Best Color Photograph (16 Mcolors). Output size: original size. Resolution: automatic (I think this is 200 dpi). Sharpen detail in photos (?). Use Maximum bit depth. )
I chose the numbers in the previous step to make neutral gray look neutral gray.
Since I'm scanning a black and white photo, in theory I should be able to pick *any* pixel with the eyedropper and see that the R,G,B values are all equal to each other.
When I keep the scanner default of x=0, y=0, the Red value is always larger (in the Paint Shop Pro histogram, I see peaks in the red shifted to the right (brighter) than the green and blue peaks.)
You can tell when this is adjusted correctly by going to ``Tools | Exposure Adjustment'' and picking pixels with the eyedropper. The R,G,B values of *neutral* pixels (in particular, light and medium gray) in the photograph, (say, a white fencepost in the shade, or teeth...) should be very close to each other -- 127, 122, 131 are close enough.
(it's best to do the previous 2 adjustments here, where the scanner does them with full 36 bit accuracy, rather than trying to do it later in 24 bit mode where we've already lost that information).
Image | Resize | Percentage | 50%to try to get image roughly 400 pixels wide (web quality -- see #photo_size ).
See
for more scan tips.
[FIXME]
Specialized tools aimed at taking the art (generally created by one of the above Standard art tools ) and making it more suitable for the Web: reducing its bandwidth without significantly changing its appearance, making buttons out of it, etc.
See html.html#design_advice for more general layout design advice.
[This is just a local backup copy; the live version of the "photo size" section has moved to http://visual.wiki.taoriver.net/moin.cgi/PhotoSize ]
Summary:
Web sizes are always in terms of pixels. People recommend many different sizes.
Thumbnails:
64x64 75 wide 80x80 80x80 100x150 128x128 128 wide 150x115 150 wide 192x192 192x128 260x175
"Try not to exceed 100 KB per web page for the total of all images"
Full-size web photos:
"under 420 pixels wide" 560 wide 600x400 600x400 750x500 760 wide
"twice the width of the finest significant line in a document"
"30 to 100 KB per image"
"make the smallest lowercase letter echo (e
) 8 pixels high"
Full-size printed photos:
medium quality: approximately 150 pixels per inch of resolution
professional quality: at least 300 pixels per inch of resolution
Thumbnail Size (TN) - 80 x 80 pixels http://www.sellproducts.globalsources.com/HELP/webhelp/book12/12d1.htm
100 x 150 thumbnails http://mejac.palo-alto.ca.us/leica-users/v19/msg10204.html
lists common sizes: 64, 80, 96, 112, 128, ... 192 http://www.jpegwizard.com/thumbn/thumbn.asp Looks like a nifty utility.
--Kodak Photo CD images are stored at five different resolutions, from Base/16 images at 128 x 192 pixels (for thumbnail views), to 16 Base full-resolution images at 2,048 x 3,072 pixels (Table 1). The Pro Photo CD disk adds a sixth level of resolution (64 Base) that provides high-resolution images (4,096 x 6,144 pixels).
...
... A stroke width is the thickness of the finest significant line in a document, such as the thinnest line used to render a handwritten letter or the thickness of a telephone wire in a photograph. ...
... We would predict excellent rendering of that stroke, because more than two pixels would span the stroke width. ...
...
Using Kodak Photo CD Technology for Preservation and Access A Guide for Librarians, Archivists, and Curatorsby Anne R. Kenney and Oya Y. Rieger http://www.library.cornell.edu/preservation/kodak/kodak-htm.htm For printed textual material, they recommend measuring the height of the smallest lowercase letter echo (
e) in pixels:
a minimum of eight pixels are necessary to represent detail in a consistently acceptable or just-legible manner. Twice that many pixels should provide excellent fidelity to the original,[FIXME: move to computer graphics and just link from html.html ?]
-- "Digital Darkroom Imaging and Printing Tech Tips" by Steve Hoffmann http://www.sphoto.com/techinfo/wdtech.html#ThumbnailI've decided to use 'thumbnails' that are a bit larger than most people use. ... I use 260X175 pixel images for most of my web gallery thumbnails. On some images that look good in a slightly smaller format I'm using 150X115 pixel sized thumbnails. 260X175 pixel images in vertical format will just fit in a browser window at 640X480 screen resolution. ...
The larger versions of each of my web images that are available to download are about 750X500 pixels for the 35mm and 6X9cm images
The full sized images I have left at about 400X600 (roughly) so that folks like me on a small 800X600 resolution screen (laptop) can view the entire image without having to scroll around it. -- Michael E. Bérubé http://mejac.palo-alto.ca.us/leica-users/v19/msg10191.html
scanning & preparing color photos for web display (& printing):
featuring "Step-by-Step" instructions
article by David Moninger 1997
http://www.islandtime.com/re-intro/re-photo.htm
(DAV: the advice on GIF vs. JPEG is obsolete ... The advice to save a copy of the original high-resolution scan is good, but DAV believes PNG is the best format for that).If you're going to the Web ... you should strive to keep the final size under 420 pixels wide to allow for browser borders, etc. This will insure that the viewer will not have to use the scroll bars to see all the picture.
Consider 240 - 250 pixels to be half a screen wide. Thumbnail pictures are usually 75 to 150 pixels wide.
``Say No to 72 dpi'' by Wayne Fulton 2002 http://www.scantips.com/no72dpi.html | http://www.scantips.com/ [FIXME: read]
Noel's Digital Image CD Primer http://home.att.net/~ncarboni/ImageCDR.html ``thumbnails ... about 128 pixels wide'' [FIXME: read]
``Hi there. Evil Emperor Zurg here to talk about digital cameras.'' http://wdwig.com/digital.htm ``The only piece of equipment that will always improve your images is a camera support! Zurg, your excellency, work with me here, vaporize them if they won't use one!'' ... ``Zurg needed more shiny new toys.'' [FIXME: read]
"Web Photo Gallery Creation Tools" http://graphicssoft.about.com/cs/webgallery/
-- http://www.acdsystems.com/English/Community/ColumnsArticles/PhotoTips/photo-2002-06-08.htmTo figure out what size prints you can make from today's digital cameras, you have to first break down the pixel measurements. For example, a 4.1-megapixel camera works out to a picture with dimensions of 1704 x 2272 pixels at its highest resolution; ...
For a reasonable quality print you need approximately 150 pixels per inch of resolution (we'll call this medium quality), while for professional quality prints you need at least double that.
[This is just a local backup copy; the live version of the "fonts and typography" section has moved to http://visual.wiki.taoriver.net/moin.cgi/FontsAndTypography ]
tools for making letters shaped however you want; ideas for different letter styles, legibility, etc; fonts other have created using those tools and ideas.
The latest font news is at http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&group=comp.fonts and http://fonts.deviantart.com/ .
see also ASCII_Art fonts.
see also linux.html#tex for info on TeX, the standard way of typesetting mathematical equations.
see also si_metric_faq.html#iso8859 for some information on the default character set for web pages.
Some of these font try to make English text even easier to read, by making the letters more distinct. Others try to ``look cool'' or ``look pretty'' even if it makes English text slightly more difficult to read. See idea_space.html#alphabet_aesthetics for fonts that go to extremes to look cool, even if it makes English text almost impossible to read.
The Norwegian font scene http://cgm.cs.mcgill.ca/~luc/norway.html lists many fonts, mostly foreign character sets (Greek, runes, futhark, Arabic, Cyrillic ...)
The Association for Font Information Interchange http://www.unicode.org/afii/ ???
The comp.fonts FAQ, compiled by Norman Walsh http://www.nwalsh.com/comp.fonts/FAQ/index.html (1996-08-14)
The comp.fonts FAQ, compiled by Norman Walsh http://www.fontlab.com/html/faq.html (1996-08-14)
[this is an old archive -- moved to http://visual.wiki.taoriver.net/moin.cgi/PostScriptLinks ] PostScript: it's not just a file format. Don Lancaster suggests using it as a full-fledged programming language in its own right.
http://www.cappella.demon.co.uk/ points to a cute little PostScript barcode utility and documentation.
Thinking in PostScript book by Glenn Reid http://rightbrain.com/pages/book-download.shtml online book [FIXME: to read] [Is this related to Thinking in C++ by Bruce Eckel ?]
http://cuisg11.unige.ch/OSG/people/jvitek/Compilers/Year93/msg00128.html PDB -- ANSI-C to PostScript translator/compiler apparently by Arthur van Hoff (Jan 1993)
see also Fractal Image compression
(FIXME: Consider moving to http://en.wikipedia.org/wiki/Fractal )
students can enjoy the art of mathematics as they master the science of mathematics. This focus can help one address a wide variety of topics in the K-12 curriculum including scientific notation, coordinate systems and graphing, number systems, convergence, divergence, and self-similarity.
Why Fractals? Many people are immediately drawn to the bizarrely beautiful images known as fractals. Extending beyond the typical perception of mathematics as a body of sterile formulas, fractal geometry mixes art with mathematics to demonstrate that equations are more than just a collection of numbers. With fractal geometry we can visually model much of what we witness in nature, the most recognized being coastlines and mountains. Fractals are used to model soil erosion and to analyze seismic patterns as well. But beyond potential applications for describing complex natural patterns, with their visual beauty fractals can help alter students' beliefs that mathematics is dry and inaccessible and may help to motivate mathematical discovery in the classroom.
What is the ``IBM fractal project'' ? [FIXME: look at these illustrations]One of the most inspiring works however seems to have been Poincaré's Vorlesungen uber die Theorie der Automorphen Funktoren published in 1897 which contained many influential illustrations. His drawings of hyperbolic tesselations were embellished by M.C. Escher and made into a form of art which itself could be argued to be closely related to fractals.
From: (Alan Wolf) Newsgroups: sci.nonlinear Subject: To Mac users who had problems with the Lyapunov .zip file on my site... Date: Wed, 08 Nov 1995 10:20:40 GMT ... The Lyapunov code on my site is in the form of a self-decompressing zip file. A few Mac users had trouble with that, so I added a conventional .zip file that some Mac decompressors can handle more easily. Alan Wolf
Subject: Re: fractal geometry From: Rick Kessler <rkessler at pacificrim.net> Date: 20 Jan 1996 01:22:59 GMT
check out (gopher://archives.math.utk.edu) - several programs on fractals for both dos/windows and macs. Hope you find what you need.
Rick
graphics produced under severe limitations
David Cary is fascinated by ASCII Art. (consider moving to http://en.wikipedia.org/wiki/ASCII_art )
--
/"\ m i k e b u r r e l l
\ / ASCII RIBBON CAMPAIGN
X AGAINST HTML MAIL http://mikpos.dyndns.org
/ \
Typing Pictures http://mathforum.org/dr.math/faq/faq.ascii.pictures.html ASCII art, used for geometry. (``do not use tabs - use only the space bar and a monospace font.'')
_ _ _ _ _ ___ _ ___ ___
< >| || || || | _| _|< >|o || |
|_||_||_||____||___| |_||___||_||_|
a very small ASCII Art font (3 rows), perhaps by
Illusion/Phoenix
Graphician, Phoenix Realtime Productions
Linkoping Institute of Technology
_ _ _ _ _ _
| (_) | _____ | |_| |__ (_)___
| | | |/ / _ \ | __| '_ \| / __|
| | | < __/ | |_| | | | \__ \
|_|_|_|\_\___| \__|_| |_|_|___/
__ .__ .__
___________ _/ |_| |__ |__| ______
/ _ \_ __ \ \ __\ | \| |/ ___/
( <_> ) | \/ | | | Y \ |\___ \
\____/|__| |__| |___| /__/____ >
\/ \/
FIGlet
is available for Unix (with source code), DOS, Macintosh,
and many other systems.
Now handles non-ASCII character sets
and right-to-left printing (e.g., Hebrew).
John Barger thought these fonts were most useful:
Subject: INFO-FONTS: Hurrah for Figlet
From: jorn@mcs.com (Jorn Barger)
Date: 15 Feb 1996 14:23:46 -0600
...
So I downloaded all (?) the new fonts and sorted out these that
I think will be most useful:
_|_ _ |) _ o._ _|_ _|_ |- ._ _ o._ o '_/_ /'_
| \/\/(_)| (_)|| | | _\||()|`|_ | | ||| || / /(/(/(
____ __ __ _| | | | |
(_-< ' \/ _` | | | (_-< ` \ (_-< \ _` | _` | _ \ \ \ /
/__/_|_|_\__,_|_|_| ___/_|_|_|___/_| _|\__,_|\__,_|\___/\_/\_/
_|_|_ _ _ _ _ _ . _ _|_ _|_ _ _ . _ |_ |_ ,
| | || (/_(/_|_)(_)|| | | _)|_| (_||(_)| )|_ _. _ ._ -+- _ __ __ _.
| _/ (_.(_)[ ) | (/,_) _) (_]
+-+-+-+-+-+-+-+ ^ ^ ^ ^ ^ ^ ^ .-. .-..-..-..-..-..-..-.
|d|i|g|i|t|a|l| /p\ /y\ /r\ /a\ /m\ /i\ /d\ | |__ | || .` || || | > <
+-+-+-+-+-+-+-+<___><___><___><___><___><___><___>`----'`-'`-'`-'`----''-'`-`
____ _ _ ___ ____ ____ _ _ ____ ___ _ _ _ _ _ _ _ _ _ _ _
| \_/ |__] |___ |__/ |\/| |___ | \ | | | |\/| /_//_'/_//_//_'/
|___ | |__] |___ | \ | | |___ |__/ | |__| | | / / /
__ __ | |
___ __ _ ___ / /__ ____ / /_ __| __ \ _` | _` | _ \\ \ \ /
(_-</ ' \(_-</ / _ `/ _ \/ __/ \__ \ | | | ( | ( | ( |\ \ \ /
/___/_/_/_/___/_/\_,_/_//_/\__/ ____/_| |_|\__,_|\__,_|\___/ \_/\_/
/~\ | ___ ___ ___ __ ___ __ __ ___
-|-/~\| ||/~\~|~/~\|~~\(~ / __)( _)( ,) ( )( _) / _) ( ) ( ,\
| \_/ \_/|| | \_/|__/_) \__ \ ) _) ) \ )( ) _)( (_ /__\ ) _/
| (___/(___)(_)\_)(__)(_) \__)(_)(_)(_)
, , _ ,_ o _|_ / |
/ \_/|/|/| / \_/ / | | |/\_| ___ ___ ___|
\/ | | |_/ \/ \__/ |/|/|_/ |_/ | )|___)| | )| )
(| |/\/ |__ | | |__/
____ __ __ __ ____ _ _ ____ __ ____
( _ \( )( )( ) ( _ \( )_( )( ___) /__\ ( _ \
) _ < )(__)( )(__ ) _ < ) _ ( )__) /(__)\ )(_) )
(____/(______)(____)(____/(_) (_)(____)(__)(__)(____/ bulbhead
_ _ _ _ _ _ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/ \ / \ / \ / \ / \ / \ ||s |||m |||k |||e |||y |||b |||o |||a |||r |||d ||
( b | u | b | b | l | e )||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
\_/ \_/ \_/ \_/ \_/ \_/ |/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
_ _ _ _
___| |_ __ _ _ __ __| | __ _ _ __ __| | __ _ ___ __ _ __ _(_) ___ __ _
/ __| __/ _` | '_ \ / _` |/ _` | '__/ _` | |__` |/ _ \__` |__` | |/ _ ' _` |
\__ \ || (_| | | | | (_| | (_| | | | (_| | | | (_) | | | | | | | | | | |
|___/\__\__,_|_| |_|\__,_|\__,_|_| \__,_| |_|\___/ |_| |_|_|_| |_| |_|
__ __ _ _
_____/ /___ _____ / /_ ___ ___ ___| |_ ___ ___ ___| |___ ___
/ ___/ / __ `/ __ \/ __/ | _| -_| _| _| .'| | . | | -_|_ -|
(__ ) / /_/ / / / / /_ |_| |___|___|_| |__,|_|_|_ |_|___|___|
/____/_/\__,_/_/ /_/\__/ |___|
___ __ _ _ __ ___ __ __
/ _ \ / _` | '__/ _ \ .----.| |--.--.--.-----.| |--.--.--.
| (_) | (_| | | | __/ | __|| | | | || <| | |
\___/ \__, |_| \___| |____||__|__|_____|__|__||__|__|___ |
|___/ |_____|
_
_| | _ _ ___ ___ ___ ___ ___ _ _
/ . || '_>| . \/ ._>| . \| . \/ ._>| '_>
\___||_| | _/\___.| _/| _/\___.|_|
|_| |_| |_|
_| _| _|
_|_|_| _| _|_| _|_|_| _| _|
_| _| _| _| _| _| _|_|
_| _| _| _| _| _| _| _|
_|_|_| _| _|_| _|_|_| _| _|
eeee eeeee eeeeeee eeeee e e eeeee eeee eeeee
8 8 8 88 8 8 8 8 8 8 8 8 8 8 8
8e 8 8 8e 8 8 8eee8 8e 8 8e 8eee 8eee8e
88 8 8 88 8 8 88 88 8 88 88 88 8
88e8 8eee8 88 8 8 88 88ee8 88 88ee 88 8
_________ _ _ _ _ _
_______________________________ / ,'_)( ) (_) ( ) ( )
__ ___/__ __ \ _ \ _ \ __ / ___ | | | | _ __ ___ | |_ ___ | |
_(__ )__ /_/ / __/ __/ /_/ / ( o_)( _)( _)( )( _)( o )( o \( o )( _)
/____/ _ .___/\___/\___/\__,_/ \( /_\ /_\ /_\/_\ \_/ /___/ \_/ /_\
/_/
_____ _____.__ __ .__ _
________________ _/ ____\/ ____\__|/ |_|__| ___| |_ ___ ____
/ ___\_ __ \__ \\ __\\ __\| \ __\ | /___) _)/ _ \| _ \
/ /_/ > | \// __ \| | | | | || | | | |___ | |_| |_| | | | |
\___ /|__| (____ /__| |__| |__||__| |__| (___/ \___)___/| ||_/
/_____/ \/ |_|
_ _ o
| | | | , __ ,_ _ _|_
____ ___ _ _ ____ __| |_____ __| | / \_/ / | | |/ \_|
/ ___) _ \| | | | _ \ / _ | ___ |/ _ | \/ \___/ |_/|_/|__/ |_/
| | | |_| | |_| | | | ( (_| | ____( (_| | /|
|_| \___/|____/|_| |_|\____|_____)\____| \|
. . . .
,-. |- ,-. ,-,-. ,-. ,-. |- ,-. | | ,-.
`-. | ,-| | | | | | ,-| | |-' | | | |
`-' `' `-^ ' ' ' |-' `-^ `' `-' `' `' `-'
|
' stampatello
_ _
| | (_) o o o
| |__ _ __ _ | o | / |
| '_ \| |/ _` | -o- o-o OO o-o o-o o-o -o- o-o o o
| |_) | | (_| | | | | | | \ |-' | | | | | |
|_.__/|_|\__, | o | o o o o o-o o o o-o o--O
__/ | |
|___/ o--o
___ ___
/'___)/'___) .--.
_ _ _ _ | (__ | (__ _ _ : .-'
( '_`\ ( ) ( )| ,__)| ,__)( ) ( ) : `;.-..-..---. .---. .-..-.
| (_) )| (_) || | | | | (_) | : : : :; :`-'_.'`-'_.': :; :
| ,__/'`\___/'(_) (_) `\__, | :_; `.__.'`.___;`.___;`._. ;
| | ( )_| | .-. :
(_) `\___/' `._.'
o o o
O O O , ,,
O O o _ || || '
o o O / \\ /'\\ =||= ||/\\ \\ _-_
.oOo. .oOo. OoOo. OoOo. o .oOo. .oOo || || || || || || || || ||
O o OooO' O o O o O OooO' `Ooo. || || || || || || || || ||
o O O o O o O o O O \\_-| \\,/ \\, \\ |/ \\ \\,/
oOoO' `OoO' `OoO' `OoO' Oo `OoO' `OoO' / \ _/
O '----`
o'
@@@@@@@ @@@@@@ @@@ @@@@@@ @@@@@@ @@@ @@@
@@@@@@@@ @@@@@@@@ @@@ @@@@@@@ @@@@@@@@ @@@@ @@@
@@! @@@ @@! @@@ @@! !@@ @@! @@@ @@!@!@@@
!@! @!@ !@! @!@ !@! !@! !@! @!@ !@!!@!@!
@!@@!@! @!@ !@! !!@ !!@@!! @!@ !@! @!@ !!@!
!!@!!! !@! !!! !!! !!@!!! !@! !!! !@! !!!
!!: !!: !!! !!: !:! !!: !!! !!: !!!
:!: :!: !:! :!: !:! :!: !:! :!: !:!
:: ::::: :: :: :::: :: ::::: :: :: ::
: : : : : :: : : : : : :: : poison
oooo d8b .ooooo. ooo. .oo. .oo. .oooo. ooo. .oo.
`888""8P d88' `88b `888P"Y88bP"Y88b `P )88b `888P"Y88b
888 888 888 888 888 888 .oP"888 888 888
888 888 888 888 888 888 d8( 888 888 888
d888b `Y8bod8P' o888o o888o o888o `Y888""8o o888o o888o
::: === :::=== :::==== :::===== ::: :::==== :::=====
::: === ::: ::: === ::: ::: ::: === :::
=== === ===== ======== ====== === ======== === =====
=== === === === === === === === === === ===
====== ====== === === === ======== === === ======= usaflag
_______.___________. ___ .______ ____ __ ____
/ | | / \ | _ \ \ \ / \ / /
| (----`---| |----` / ^ \ | |_) | \ \/ \/ /
\ \ | | / /_\ \ | / \ /
.----) | | | / _____ \ | |\ \----. \ /\ /
|_______/ |__| /__/ \__\ | _| `._____| \__/ \__/ starwars
88
""
88 88 8b,dPPYba, 88 8b d8 ,adPPYba, 8b,dPPYba, ,adPPYba,
88 88 88P' `"8a 88 `8b d8' a8P_____88 88P' "Y8 I8[ ""
88 88 88 88 88 `8b d8' 8PP""""""" 88 `"Y8ba,
"8a, ,a88 88 88 88 `8b,d8' "8b, ,aa 88 aa ]8I
`"YbbdP'Y8 88 88 88 "8" `"Ybbd8"' 88 `"YbbdP"'
######## ### ## ## ## ## ######## ######## #######
## ## ## ## ### ## ### ## ## ## ## ## ##
## ## ## ## #### ## #### ## ## ## ## ##
######## ## ## ## ## ## ## ## ## ###### ######## #######
## ## ######### ## #### ## #### ## ## ## ##
## ## ## ## ## ### ## ### ## ## ## ## ##
######## ## ## ## ## ## ## ######## ## ## #######
***
*** *
** ***
** *
** *** ****
**** **** ** *** **** **** **** * ****
* *** * * *** * ** *** * *** * ** **** * *** *
* **** * **** ** ** * **** ** * ****
** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** **
*** * ** ** ** ** ** ** *** ** **
******* ***** ** *** * *** * ******** *** ***** **
***** *** ** *** *** *** *** *** **
***
**** ***
******* **
* **** caligraphy
j
-==---
. hypertext theory : artificial intelligence : finnegans wake . _+m"m+_"+_
lynx http://www.mcs.net/~jorn/ ! Jp Jp qh qh
best-of news:alt.music.category-freak ! O O O O
ftp://ftp.mcs.com/mcsnet.users/jorn/ Yb Yb dY dY
...do you ever feel your mind has started to erode? "Y_ "Y5m2Y" " no.
2002-11-14:DAV:
\ ---
x \oooo
| \ o\ o
\ -o==\===o--
--o===\==o- \
o \o \ |
oooo\ x
--- \
--- --- --- ---
/ x \ / x \
/ / \ x / \ \
| | \ / \ / | |
| | x x | |
| | / / \ | |
\ \ / x \ / /
\ x / \ x /
--- --- --- ---
--- - - ---
/ \ / \ / \ / \
/ x x x \
| / \ / \ / \ |
| | x x | |
| \ / / \ / |
\ x x x /
\ / \ / \ / \ /
--- - - ---
- - - -
/ \ / \ / \ / \
/ x \ / x \
/ / \ x / \ \
| | \ / \ / | |
| | x x | |
| | / / \ | |
\ \ / x \ / /
\ x / \ x /
\ / \ / \ / \ /
- - - -
- - ooo - -
/ \ /o\ooo/o\ / \
/ xooo\o/ooox \
/ /o\oo x oo/o\ \
| | oo\ / \ /oo | |
| | oo x x oo | |
| | oo/ \ / \oo | |
\ \o/oo x oo\o/ /
\ xooo/o\ooox /
\ / \o/ooo\o/ \ /
- - ooo - -
- - ooo - -
/ \ /ooooo/o\ / \
/ /ooooo/ooo/ \
/ /o\oo \ oooo\ \
| | oo\ / \ ooo | |
| | oo / / oo | |
| | ooo \ / \oo | |
\ \oooo \ oo\o/ /
\ /ooo/ooooo/ /
\ / \o/ooooo/ \ /
- - ooo - -
Computer graphics tools intended to be used by doctrors, engineers, mathematicians, etc. to look into large data sets to "see" new insights.
see computer_architecture.html#cellular_automata for cellular automata simulators (some of them quite pretty).
see data_compression.html#benchmark for some medical images and other test images for these visualization tools.
see nanotech.html#molecule_modeling for tools for visualizing atoms and molecules.
Visualizing Complex Functions http://home1.gte.net/jrsr/complex.html using color on a 2D surface to visualize complex-input, complex-output functions. Pretty. http://www.mathworks.com/publications/newsletter/summer98.cleve.shtml Many more complex functions visualized with the same method. Pretty.
http://mecheng1.uwaterloo.ca/~fslien/ Computational Fluid Dynamics (CFD) and Turbulence Modelling; Flow visualization, finite element analysis.
Scientific Visualization http://www.uni-koeln.de/~aa045/gallery.html
Information Visualization Resources http://www.graphics.stanford.edu/courses/cs348c-96-fall/resources.html
DEVise: an Environment for Data Exploration and Visualization http://www.cs.wisc.edu/~devise/
Date: Sat, 7 Feb 1998 09:55:30 -0500 (EST)
Comment: Hx: Transhuman Technlogies
Originator: transhumantech@excelsior.org
Version: Autolist v0.2 - Copyright 1995 Planet X Engineering
From: Eugene Leitl
To: Multiple recipients of list <transhumantech@excelsior.org>
Subject: free medical image 3D visualization software for Windows95/NT (fwd)
---------- Forwarded message ----------
Date: Mon, 2 Feb 1998 20:18:25 -0500
From: Andrew Miller
To: "bionet.neuroscience mail newsgroup"
Subject: free medical image 3D visualization software for Windows95/NT
Resent-Date: Tue, 3 Feb 98 0:28:0 UT
Resent-From: server-daemon@dl.ac.uk
NeuroModeller (version 1.09) brought to you by Cornell Medical Center,
Division of Neurosurgery:
http://users.infohouse.com/amiller/home.htm
... approximately 640 KB download size. Currently reads DICOM and BMP file
types as input.
Sincerely,
A. Miller, MD
amiller@infohouse.com
_A New Kind of Science_ http://www.wolfram.com/s.wolfram/books/new-science.html book by Stephen Wolfram. Wolfram Research sells the really cool-looking _Mathematica_ http://www.wolfram.com/mathematica/ software system for mathematics and visualization.
(and a couple of formatted text formats)
See also Writing Computer Graphics Software
see also data_compression.html#file_formats
"my favorite (standard) file formats"
(see SVG for the SVG2VML converter)
...
Vector Markup Language
http://www.toxicorp.com/vml_start.html
says
(un)Fortunately, the W3C shelved the VML submission ...
Instead, they are concentrating on a later vector language specification, called
Scalable Vector Graphics (SVG).
(decimal) 137 80 78 71 13 10 26 10 (hexadecimal) 89 50 4e 47 0d 0a 1a 0a (ASCII C notation) \211 P N G \r \n \032 \n
Some other interesting and/or popular image formats:
general Information on file formats
"Wotsit's Format, the complete programmer's resource on the net. This site contains file format information on hundreds of different file types and all sorts of other useful programming information; algorithms, source code, specifications, etc." http://www.wotsit.org/
-- Bart Richards, CEO of Thunderstone http://www.thunderstone.com/ , interviewed in an article by Bruce Wiebusch "The Internet as a Design Tool" in _designfax_ 1998 March"The biggest issue as far as I see it is ... File formats. Each vendor of a new software tool that chooses to create a new file format to store or transmit their information is, in a way, making a new language. In human terms, any time you have different languages you create communication barriers which impede the flow of information. ... proprietary formats that can't be directly processed by third-party applications. The net result is that the life-cycle of the knowledge contained in these files is shortened, and possible re-use of the information is limited to the imagination of the original developers. No one else can pry open the can and extract the knowledge for a different purpose.
Put another way, you can still use and view all the information in DaVinci's Codex that was created a few hundred years ago, but you probably can't get at the data you put in an MS-Word Version 3 file just 5 years ago. Evey successful communication product like faxes, phones, radio, and television is reliant on open standards. The lack of open data-format standards is limiting the potential for the Internet. Proprietary formats constrict the flow of knowledge and slow down new innovation.
Author: Uwe Borchert Email: borchert@informatik.unibw-muenchen.de Date: 1998/11/06 Forums: sci.image.processing ... Hello Obinna, >My application requires reading bmp and jpg image formats from a file. I >wonder if you can direct me to where I can find a description of the >formats. > There are a lot of file format documents on the WWW. There is realy no need for any real book, exceept for heating in the winter. ;-P ... BMP is no real standard and there is no official homepage. You should check one of the following servers: Internet Resources: http://www.cs.waikato.ac.nz/~stevef/224/Resources The Graphics File Format Page: http://www.dcs.ed.ac.uk/~mxr/gfx/ MS-DOS Multimediaformat: ftp://x2ftp.oulu.fi/pub/msdos/programming/formats/ UNIX Multimediaformat: ftp://x2ftp.oulu.fi/pub/unix/programming/formats/ Sound and graphikformats ftp://ftp.ncsa.uiuc.edu/misc/file.formats/ Graphics viewers, editors, utilities and info: http://www2.ncsu.edu/bae/people/faculty/walker/hotlist/graphics.html I'm not sure, but the links should not be broken and lead you to knowledge. CU -- (.)(.) ( .. ) ~~~~~~~~~~ Uwe Borchert
detailed information on a few file formats I find interesting:
search for control characters that shouldn't be in a ASCII text (.txt) file:
grep -3 -n "[^[:graph:][:blank:]]" *.txtor, if you want to be cryptic,
grep -3 -n "[^!-~ \x09]" *.txti.e., "*.txt" files should only contain the graphical characters from '!' (0x21) to '~' (0x7E), the whitespace characters space (0x20), tab (0x09), and the end-of-line. The file should end with one or more end-of-line. For any one text file, there should only be one kind of end-of-line:
To convert any text file using any of these conventions (or even the mixed-convention that sometimes occurs when MS-Studio edits a Unix text file and leaves both Unix and MS-DOS line endings), to the standard Unix format, do (see ~/bin/t.sh )
Normalize text, html, and texinfo files to standard Unix plain text format. If these files are already Unix or Mac text files, without any whitespace at the end of the line, then no changes will be made (except for possibly adding or deleting blank lines at the end of the file).
strip all trailing whitespace from each line including MS-DOS style ^M (\r 0x0D) characters.
perl -pi.bak -e 's|[ \t\r]*$||g' *.txt perl -pi.bak -e 's|[ \t\r]*$||g' *.html perl -pi.bak -e 's|[ \t\r]*$||g' *.texinfo
This does *not* assume that every line ends with ^M. (Conversion programs that make this assumption delete the last letter of every line, which is a Bad Thing with mixed-convention files). To convert a Mac text file to Unix plain text format, do
perl -pi.bak -e 's|\r|\n|g' *.texinfo
One could try to do the same thing with
sed 's/[ <cr>]*$//' junk.txt > 2junk.txtnote that there are 3 characters inside the brackets, a space, a tab, and a carriage_return (0x20 0x09 0x0D). tabs (^I \t 0x09), and spaces (0x20). leaving the newline (^J \n 0x0A) at the end of the line. I wish I could escape them like sed 's/[ \t\r]*$//' junk.txt > 2junk.txt but unfortunately, this doesn't work with my version of sed. The command diff -b 2junk.txt.bak 2junk.txt should not find any changes between the 2 files. The command diff --recursive -b dirA dirB should not find any changes between the 2 directories (except for the backup files generated). 1999-06-18:DAV: David Cary started, using ideas from http://www.ptug.org/sed/sedfaq.html .
If this text file is a "mixed" text file (some lines end with UNIX \n but other lines end with DOS \r\n) this should normalize it to plain UNIX text file. This corrupts binary files. This strips the formatting of ProleText http://www.clarinet.com/tech/proletext.html and structure-enhanced text (setext) http://www.bsdi.com/setext/ (but it should leave all the content). from http://www.ptug.org/sed/sedfaq.html
sed 's/[ ^t]*$//' file.
more information on text files:
[FIXME: c_programming.html]My opinion is that the best way to solve the technical issues is to mandate that the ASCII #9 TAB character never appear in disk files: program your editor to expand TABs to an appropriate number of spaces before writing the lines to disk.
keyword = value / commentfollowed by the binary image data.
FITS archive at NRAO http://www.cv.nrao.edu/fits/ has FITS standards documentation and source code for implementing it.
The National Space Science Data Center (NSSDC) http://nssdc.gsfc.nasa.gov/ also has the FITS standards documentation at ftp://nssdc.gsfc.nasa.gov/pub/fits .
The FITSview http://www.cv.nrao.edu/~bcotton/fitsview.html program for viewing astronomical images is distributed free of charge by NRAO (versions available for Macintosh, MS-Windows, and Unix systems). More source code is available at http://idlastro.gsfc.nasa.gov/fitsio.html and http://midas.oma.be/www_root/serverdoc/www/astronomy.html#fits
http://dir.yahoo.com/Science/Astronomy/FITS__Flexible_Image_Transport_System_/
(decimal) 137 80 78 71 13 10 26 10 (hexadecimal) 89 50 4e 47 0d 0a 1a 0a (ASCII C notation) \211 P N G \r \n \032 \n
libpng-#.##.tar.gz lpng###.zip (or possibly lbpng###.zip or lp###.zip)(?)
ftp.uu.net:/graphics/jpeg/jpegsrc.v##.tar.gz ftp.simtel.net:/pub/simtelnet/msdos/graphics/jpegsr##.zip
HTM2TXT http://atrey.karlin.mff.cuni.cz/~pavel/htm2txt.html converts HTML to plain text. (Is this really any better than lynx --dump ?)
Most Linux systems already come with documentation on texinfo; try ``info texinfo'' (I use the Gnome Help Browser).
GNU says
-- http://www.gnu.org/prep/standards.html#SEC31 (documentation for GNU utilities and libraries)The preferred document format for the GNU system is the Texinfo formatting language.
Is http://www.gnu.org/manual/texinfo/ the official Texinfo manual ?
Note to self: when I write normal tree-structured ".texinfo" format files, I do *not* "write the `Next', `Previous', and `Up' pointers after the name of a node." See Creating Pointers with makeinfo http://www.gnu.org/manual/texinfo/html_node/texinfo_79.html#SEC75 (Karl Berry told David Cary in 1999-02-06 that this feature was added to makeinfo by Brian Fox a long time ago).
These books on computer graphics are gnerally about "how to write software that generates computer graphics" or "how to write software that can read and write computer graphics files", not "how to draw art using your computer".
From: kallianp@cs.sc.edu (Mohit Kallianpur)
Newsgroups: comp.graphics.algorithms
Subject: Re: BOOKS
Date: 11 Oct 1995 18:44:29 GMT
Organization: University of South Carolina - Columbia - Computer Science
Lines: 76
cho <w-cho@ux4.cso.uiuc.edu> writes:
> Hello. I've just started out my study in computer graphics, and been
>searching for "a few good books." :) I am fairly competent with C and
>C++... I would appreciate any recommendation for books regarding 3D
>graphics. Thank you!
Hi John,
Check out http://wcl-rs.bham.ac.uk/GamesDomain/gamedev/3dbooks.html
In case you cannot check out that site, here is a list of books which
you may find very useful :
For Graphics intro and algorithms :
1) 3D Computer Graphics, 2nd Ed., Alan Watt, Addison-Wesley 1993,
ISBN : 0-201-63186-5.
This book should be owned by any person who is into Computer Graphics.
Really excellent book!
2) Computer Graphics: Principles and Practice (2nd Ed.) - J.D. Foley,
A. van Dam, S.K. Feinder, J.F. Hughes, Addison- Wesley 1990,
ISBN : 0-201-12110-7
Another classic.
There is an "Introduction to Computer Graphics" by the same authors. It is
supposedly an abridged and modified version of the above book with code in
"C". I have not looked at this book yet.
3) Computer Graphics: A Programming Approach, 2nd Ed., Steven Harrington,
McGraw-Hill 1987,
ISBN : 0-07- 026753-7
4) Advanced Animation and Rendering Techniques, Alan Watt and Mark Watt,
Addison-Wesley,
ISBN : 0-201- 54412-1
For the math part of graphics :
1) Mathematical Elements for Computer Graphics, 2nd Ed. - David F. Rogers and
J. Alan Adams, McGraw-Hill 1990,
ISBN 0-07-053530-2
Covers all the basic math stuff needed for graphics - including curves,
splines, NURBS etc.
2) Computer Graphics : An Introduction to Mathematics and Geometry,
M. E. Mortenson, Industrial Press,
ISBN : 0831111828.
Apparently requires a good math background to read, as it is not easy reading.
For texturing, writing shaders etc. :
1) Texturing and Modeling : A Procedural Approach, Ken Musgrave, David S. Ebert,
Darwyn Peachey et. al., Academic Press Professional.
ISBN : 0-12- 228760-6
For image processing :
1) Digital Image Processing - Rafael C. Gonzalez and Richard E. Woods
Addison-Wesley 1992,
ISBN 0-201-50803- 6
Excellent book on image processing!
You can probably also get the Graphics Gems series from your library, and the
source for it off the net.
Hope this helps.
Mohit Kallianpur
(kallianp@cs.sc.edu)
See also
You may also want to check out my style_guides [FIXME:] for related information.
The companion source code is available at the URL:
file://ftp.qualia.com/pub/bspfaq/
You can also obtain the FAQ and the source code by sending e-mail to:
bspfaq@qualia.com
The subject line should be:
SEND BSP TREE <what>
where "<what>" is any combination of "TEXT", "HTML", or "SOURCE". These options
will return to you a plaintext copy of the FAQ, an HTML formatted copy of the
FAQ, or a uuencoded copy of the sample source which accompanies the FAQ.
...
Problems with the e-mail utility should be reported to:
bspfaq@qualia.com
Use a different subject line descriptive of your problem, and the message will
be forwarded to the maintainer.
--
bwade@qualia.com
http://www.qualia.com/
The latest version of this FAQ is available via WWW at: http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/top.html under comp->graphics->rendering->raytracing. It is also available via anonymous ftp at: ftp://rtfm.mit.edu/pub/usenet/news.answers/graphics/raytrace-faq/ If you only have email, you can get it by sending email to: <mail-server@rtfm.mit.edu> with both "send usenet/news.answers/graphics/raytrace-faq/part1" and "send usenet/news.answers/graphics/raytrace-faq/part2" in the body of the message (without the quotes).
[moved to http://visual.wiki.taoriver.net/moin.cgi/GraphicAlgorithm ]
Detailed information on the Bresenham algorithm. The original version was just for lines (on a mechanical pen-plotter). Since then, people have discovered/invented very similar algorithms for Bezier curves, circles, ellipses, etc.
Olin Lathrop <olin_piclist at EMBEDINC.COM> on 2001-04-03 07:09:42 AM
Please respond to pic microcontroller discussion list <PICLIST at MITVMA.MIT.EDU>
To: PICLIST at MITVMA.MIT.EDU
cc: (bcc: David Cary/TULSA/BRUNSWICKOUTDOOR)
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
>>
Show me a version of Bresenham line algorithm where there is only one
addition per step.
As I see it, there is at least one addition and two subtractions.
We accumulate the error, that is one addition.
We shift left the error one for multiply by two.
We compare error with deltax which requires a subtraction at minimum.
That is one subtraction.
Based on the comparision, we may subtract deltax from the error and
increment the y axis. That is two subtractions.
<<
Bresenham's algorithm works on 3 numbers. I'll call them E, DEA, and DEB.
Once the setup is over, the algorithm goes like this:
loop:
if E >= 0
then
<take a B step>
E <-- E + DEB
else
<take an A step>
E <-- E + DEA
endif
goto loop;
The IF merely requires checking the sign bit of E, so I don't consider that
an "operation". You do have to add either DEA or DEB into E each step.
That's the add operation I was talking about. The A step and B step
operations are up to you, but an A step is usually advancing by 1 in the
minor axis, and a B step is leaving the minor axis value alone. What you do
with the major axis is also up to you, but you would usually advance it by
1. You also will need to terminate the loop. Since the number of
iterations can be determined ahead of time, this is usually just
decrementing a counter until it reaches zero.
So there is only one real math "operation" required, but I should have
mentioned the additional 2 or 3 increment/decrement operations per
iteration.
I don't know where you came up with the parts about shifting the error left
one bit and comparing it to deltax. I think you may be confusing the setup
with the running operation. There is lots of literature on this. You may
even be able to find Jack Bresenham's original paper in the IBM journal.
********************************************************************
Olin Lathrop, embedded systems consultant in Littleton Massachusetts
(978) 742-9014, olin at embedinc.com, http://www.embedinc.com
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
James Lee Williams <jlw at CREDITVIEW.SE> on 2001-04-03 09:03:27 AM
Please respond to pic microcontroller discussion list <PICLIST at MITVMA.MIT.EDU>
To: PICLIST at MITVMA.MIT.EDU
cc: (bcc: David Cary/TULSA/BRUNSWICKOUTDOOR)
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
I have personally never seen this version of the Bresenham.
At first look, I notice that your decision voxel determines if it will
set the y or the x value. When in fact, one axis will always make a
step regardless of any condition, except the end of the move opertion.
I would like to see the full algorithm you are using, because I have
been searching the net for days and none of the sites and links show it
this way. I basic algorithm I have been seeing all along is:
for(x=x1;x <= x2;x++)
{
<take an a step>
if((eps << 1) >= DeltaX)
{
<take an b step>
eps -= DeltaX;
}
}
The pseudocode algorithm for this routine is written as:
E <- 0, Y -<Y1
FOR X <-X1 TO X2 DO
STEP X
IF(E + M > -0.5)
E <- (E+M)
ELSE
Y <- Y - 1
E <- E + M + 1
ENDIF
END FOR
This appears to look close to your method, but not completely. You see,
these are the algorithms that I keep finding when I search the web for
the Bresenham algorithm.
I like your solution, it is much simpler, but I can find any reference
to it on the web at all.
Regards,
James
-----Original Message-----
From: Olin Lathrop [mailto:olin_piclist at EMBEDINC.COM]
Sent: Tuesday, April 03, 2001 8:10 AM
To: PICLIST at MITVMA.MIT.EDU
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
>>
Show me a version of Bresenham line algorithm where there is only one
addition per step.
As I see it, there is at least one addition and two subtractions.
We accumulate the error, that is one addition.
We shift left the error one for multiply by two.
We compare error with deltax which requires a subtraction at minimum.
That is one subtraction.
Based on the comparision, we may subtract deltax from the error and
increment the y axis. That is two subtractions.
<<
Bresenham's algorithm works on 3 numbers. I'll call them E, DEA, and
DEB.
Once the setup is over, the algorithm goes like this:
loop:
if E >= 0
then
<take a B step>
E <-- E + DEB
else
<take an A step>
E <-- E + DEA
endif
goto loop;
The IF merely requires checking the sign bit of E, so I don't consider
that
an "operation". You do have to add either DEA or DEB into E each step.
That's the add operation I was talking about. The A step and B step
operations are up to you, but an A step is usually advancing by 1 in the
minor axis, and a B step is leaving the minor axis value alone. What
you do
with the major axis is also up to you, but you would usually advance it
by
1. You also will need to terminate the loop. Since the number of
iterations can be determined ahead of time, this is usually just
decrementing a counter until it reaches zero.
So there is only one real math "operation" required, but I should have
mentioned the additional 2 or 3 increment/decrement operations per
iteration.
I don't know where you came up with the parts about shifting the error
left
one bit and comparing it to deltax. I think you may be confusing the
setup
with the running operation. There is lots of literature on this. You
may
even be able to find Jack Bresenham's original paper in the IBM journal.
********************************************************************
Olin Lathrop, embedded systems consultant in Littleton Massachusetts
(978) 742-9014, olin at embedinc.com, http://www.embedinc.com
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
Bob Ammerman <RAMMERMAN at PRODIGY.NET> on 2001-04-03 09:03:53 AM
Please respond to pic microcontroller discussion list <PICLIST at MITVMA.MIT.EDU>
To: PICLIST at MITVMA.MIT.EDU
cc: (bcc: David Cary/TULSA/BRUNSWICKOUTDOOR)
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
Lets see what we can do to transform this:
for(x=x1;x <= x2;x++)
{
<take an a step>
if((eps << 1) >= DeltaX)
{
<take an b step>
eps -= DeltaX;
}
}
into something more effecient.
First
if ((eps << 1) >= DeltaX
Is (roughly, except for possible rounding issues) equivalent to:
if (eps >= DeltaX / 2)
But if we subtract DeltaX/2 from X before entering the loop then we have:
if (eps >= 0)
So now we have:
eps -= DeltaX >> 1;
for(x=x1;x <= x2;x++)
{
<take an a step>
if(eps >= 0)
{
<take an b step>
eps -= DeltaX;
}
}
Is that a little simpler?
Bob Ammerman
RAm Systems
(contract development of high performance, high function, low-level
software)
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
Bob Ammerman <RAMMERMAN at PRODIGY.NET> on 2001-04-03 09:05:53 AM
Please respond to pic microcontroller discussion list <PICLIST at MITVMA.MIT.EDU>
To: PICLIST at MITVMA.MIT.EDU
cc: (bcc: David Cary/TULSA/BRUNSWICKOUTDOOR)
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
>Oh, what I forgot to mention also is that every version of the this
>algorithm was being used for graphics and hand nothing to do with
>motion. Oh course if there is a different alogithm used for motion,
>where can I find it? This seems to simplify the mater a lot. It there
>one for a circle too?
>Regards,
>James
Yes, there is a Bresenham like algorithm for circles. It is basically a
second order extension of the line drawing algorithm. (You run a difference
equation on the DeltaX value as you go).
You should find this in any good book on graphics.
Bob Ammerman
RAm Systems
(contract development of high performance, high function, low-level
software)
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
James Lee Williams <jlw at CREDITVIEW.SE> on 2001-04-03 09:36:56 AM
Please respond to pic microcontroller discussion list <PICLIST at MITVMA.MIT.EDU>
To: PICLIST at MITVMA.MIT.EDU
cc: (bcc: David Cary/TULSA/BRUNSWICKOUTDOOR)
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
Opps serious error in my example I forgot to add the error voxel.
Should be:
for(x=x1; x<= x2;x++)
{
<take an x step>
eps += DeltaY; //Accumulated error ob deltay.
if((eps<<1) >= DeltaX)
{
<take an y step>
eps -= DeltaX;
}
}
As I see this, It is as simple as it can be.
-----Original Message-----
From: Bob Ammerman [mailto:RAMMERMAN at PRODIGY.NET]
Sent: Tuesday, April 03, 2001 10:04 AM
To: PICLIST at MITVMA.MIT.EDU
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
Lets see what we can do to transform this:
for(x=x1;x <= x2;x++)
{
<take an a step>
if((eps << 1) >= DeltaX)
{
<take an b step>
eps -= DeltaX;
}
}
into something more effecient.
First
if ((eps << 1) >= DeltaX
Is (roughly, except for possible rounding issues) equivalent to:
if (eps >= DeltaX / 2)
But if we subtract DeltaX/2 from X before entering the loop then we
have:
if (eps >= 0)
So now we have:
eps -= DeltaX >> 1;
for(x=x1;x <= x2;x++)
{
<take an a step>
if(eps >= 0)
{
<take an b step>
eps -= DeltaX;
}
}
Is that a little simpler?
Bob Ammerman
RAm Systems
(contract development of high performance, high function, low-level
software)
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
Bob Ammerman <RAMMERMAN at PRODIGY.NET> on 2001-04-03 10:36:11 AM
Please respond to pic microcontroller discussion list <PICLIST at MITVMA.MIT.EDU>
To: PICLIST at MITVMA.MIT.EDU
cc: (bcc: David Cary/TULSA/BRUNSWICKOUTDOOR)
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
Oops serious error in my example I forgot to add the error voxel.
Should be:
for(x=x1; x<= x2;x++)
{
<take an x step>
eps += DeltaY; file://Accumulated error ob deltay.
if((eps<<1) >= DeltaX)
{
<take an y step>
eps -= DeltaX;
}
}
As I see this, It is as simple as it can be.
Not at all.
Try this:
eps += DeltaY;
eps -= DeltaX >> 1;
DeltaYmX = DeltaY - DeltaX;
for (x == x1; x<= x2; x++)
{
<take an x step>
if (eps >= 0)
<take a y step>
eps += DeltaYmX;
}
else
{
eps += DeltaY;
}
}
Now it looks a lot like Olin's version, doesn't it?
Bob Ammerman
RAm Systems
(contract development of high performance, high function, low-level
software)
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
Olin Lathrop <olin_piclist at EMBEDINC.COM> on 2001-04-03 11:58:01 AM
Please respond to pic microcontroller discussion list <PICLIST at MITVMA.MIT.EDU>
To: PICLIST at MITVMA.MIT.EDU
cc: (bcc: David Cary/TULSA/BRUNSWICKOUTDOOR)
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
> I have personally never seen this version of the Bresenham.
> At first look, I notice that your decision voxel determines if it will
> set the y or the x value.
I don't know what you mean by "decision voxel". Bresenham's original
algorithm was intended to draw a straight line between two pixels on a
plotter. The major axis was implicitly advanced by 1 each iteration. The
algorithm determines whether the minor axis is advanced by 1 or not for each
iteration. In other words, its job is to produce 1 bit of information each
iteration.
> When in fact, one axis will always make a
> step regardless of any condition, except the end of the move opertion.
Right. That's the major axis.
> I would like to see the full algorithm you are using, because I have
> been searching the net for days and none of the sites and links show it
> this way. I basic algorithm I have been seeing all along is:
>
> ...
>
> I like your solution, it is much simpler, but I can find any reference
> to it on the web at all.
What I posted is pretty much the standard way to do it. It is documented
lots of places, including Bresenham's original paper in the IBM Systems
Journal, Volume 4, Number 1, January 1965, pages 25-30. I just looked at
the standard reference for computer graphics by Foley and Van Dam,
"Fundamentals of Interactive Computer Graphics", published by
Addison-Wesley. They go thru a nice derivation then show the complete
algorithm. I wrote a paper once on how to extend Bresenham's algorithm so
the endpoints can be anywhere in a pixel, not just at the centers. This
paper includes a complete derivation of the basic algorithm, "Accurate
Rendering by Subpixel Addressing", IEEE Computer Graphics and Applications,
September 1990, pages 45-53.
********************************************************************
Olin Lathrop, embedded systems consultant in Littleton Massachusetts
(978) 742-9014, olin at embedinc.com, http://www.embedinc.com
--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics
Olin Lathrop <olin_piclist at EMBEDINC.COM> on 2001-04-03 12:01:59 PM
Please respond to pic microcontroller discussion list <PICLIST at MITVMA.MIT.EDU>
To: PICLIST at MITVMA.MIT.EDU
cc: (bcc: David Cary/TULSA/BRUNSWICKOUTDOOR)
Subject: Re: [PIC]:16bit/32bit Replacements for PIC16c7xx series.
>>
Oh, what I forgot to mention also is that every version of the this
algorithm was being us