Dec 112017
 
This is a fractal tool that allows the user to experiment with Barnsley IFS fractal types. VGA, 286/386 and Mouse give best results. Mouse is mandatory for creating your own fractals. Lots of trees, leaves, etc.
File VIFS.ZIP from The Programmer’s Corner in
Category Printer + Display Graphics
This is a fractal tool that allows the user to experiment with Barnsley IFS fractal types. VGA, 286/386 and Mouse give best results. Mouse is mandatory for creating your own fractals. Lots of trees, leaves, etc.
File Name File Size Zip Size Zip Type
BIFS.EXE 36972 23466 deflated
BRANCH.IFS 728 374 deflated
CGALAXY.IFS 606 299 deflated
CIRCLE.IFS 544 290 deflated
CIRCLE2.IFS 734 369 deflated
CLOUD.IFS 531 241 deflated
C_RAY.IFS 507 275 deflated
C_RAY2.IFS 509 276 deflated
C_RAY3.IFS 509 278 deflated
C_RAY4.IFS 509 275 deflated
DOTCLOUD.IFS 510 225 deflated
F2.IFS 494 232 deflated
FERN.IFS 506 234 deflated
FERN2.IFS 505 242 deflated
FLASH.IFS 1160 541 deflated
FLOWER.IFS 973 489 deflated
FLOWERS.IFS 1087 508 deflated
GALAXYS.IFS 1037 512 deflated
IRAYS.IFS 752 381 deflated
LEAF1.IFS 691 357 deflated
LEAF2.IFS 687 367 deflated
MIX.IFS 1182 549 deflated
MLEAF.IFS 696 332 deflated
PEAK.IFS 837 414 deflated
RECTANG.IFS 502 226 deflated
RECTANG2.IFS 536 253 deflated
RIFS.EXE 51604 33001 deflated
ROSE.IFS 758 391 deflated
ROT4.IFS 742 342 deflated
SBIFEPS.EXE 13806 8448 deflated
SBIFPS.EXE 13188 8157 deflated
SI2.IFS 457 203 deflated
SIERP.IFS 475 207 deflated
SNTST.IFS 805 397 deflated
SPIR.IFS 460 212 deflated
SPIR2.IFS 558 291 deflated
SPRUCE.IFS 723 353 deflated
SPRUCEX.IFS 1236 580 deflated
SQ.IFS 473 216 deflated
SQ2.IFS 479 218 deflated
STALKS.IFS 651 317 deflated
STALKS2.IFS 673 317 deflated
TREE.IFS 499 221 deflated
TREE2.IFS 982 500 deflated
VIFS.DOC 8354 3117 deflated
VIFS.EXE 65728 40330 deflated
VSBIF.EXE 35220 22333 deflated
WAVES.IFS 1435 678 deflated

Download File VIFS.ZIP Here

Contents of the VIFS.DOC file





VIFS -- View an Iterated Function System.
-------------------------------------------

Hardware requirements:

IBM PC compatible with EGA and a mouse (only for editing).
Free memory needed > 128 kByte.
(A PC/AT or faster is nice but not necessary.)


[Theory from M. Barnsley 'Fractals Everywhere' (ISBN 0-12-079062-9).]

An iterated function system (IFS) can be used to describe a fractal.
The IFSs used by the VIFS program consists of a number of transformations.
The transformations are affine, i.e. they map a point (x, y) to a point
(ax + by + e, cx + dy + f). The constants a, b, c, d, e and f define
the transformation. (a, b, c and d makes a transformation matrix,
e and f a translation vector.)

VIFS uses the Random Iteration Algoritm the compute the fractal from the IFS.
It also possible to edit the transformations (if your PC has a mouse).
(The IFS description is stored in a plain ASCII file so a text editor
will also do, but it is a bit harder to visualize what you are doing.)


Invocation syntax:

VIFS [options] ifs_data_file

Options are:

-euse edit mode (mouse required)


If the -e option isn't present VIFS displays the fractal. Since this
may take some time the keyboard is scanned, and a pressed key will stop
the computation. A beep signals that the computation has stopped.
After this, a keypress will clear the screen and end the program.

If the -e option is present VIFS goes to edit mode. The menu is displayed
at the top of the screen and the transformations all over the screen.
The mouse cursor looks like a +. To select from the menu, point at the
item and click the left button.

The transformations are displayed as rectangles with an extra line from
the zero corner pointing along the x axis. The rectangle shows how the
unit square is transformed by the transformation.

To select a transformation: point close to the zero corner and click the
left or the right button. The left button selects for move or scale and
the right button selects for rotate or skew. When a transformation is
selected it will remain so until the left button is clicked. To flip edit
mode while a transformation is selected click the right button.

Each transformation has an associated color and probability. The color
determines the color of the part of the fractal that the transformation
is responsible for. The color is also the color of the transformation
rectangle when edited. The probability determines the "weight" of the
transformation relative to the other transformations. A high probability
gives more pixels when the fractal is displayed.

Every transformation also belongs to a group. Each group defines a
separate IFS, i.e. there will be as many fractals as groups. All fractals
are displayed concurrently.

The display of the fractal(s) may be done in invariant measure mode.
In this mode the colors are not determined by the individual transformation's
color, but by the "density" of the parts of the fractal. (The color of a
pixel is increased every time it is hit by the iteration.)

The main menu items:

quitexit the program (don't forget to save the IFS first)

go display the fractal

unitdraw the unit square (handy if you have zoomed away)

im-modeinvariant measure mode flip on/off
(also in the color menu)

colorshow the color menu (see below)

prob.show the probability menu (see below)

addadd a transformation

deldelete a transformation

zoom-inzoom in, show the part of the screen to be enlarged
to fill the screen; flip mode from move to scale
exactly as with a transformation

back-outback out, the reverse of zoom-in; show where the
current full screen should be shown

redraw redraw the screen (erase fractals)

loadread an IFS from file

savewrite the IFS to file

0reset the IFS


When the color menu is shown (and im mode is off) and a transformation
is selected, its color index and the color is shown in the upper right
corner. Many transformations may have the same color index, which is
necessary if there are more transformations than colors.

If a transformation has "previous" color it will not give the fractal
a specific color but use the colors of the other transformations.

The color menu items:

quitreturn to the main menu

iminvariant measure mode flip on/off
(also in the main menu)

Max_im+increase the maximum im color

max_im-decrease the maximum im color

_bgselect the background for color change

prevuse previous color for this transformation

+indexincrease color index

-indexdecrease color index

R+ G+ B+increase the red, green or blue color content

r- g- b-decrease the red, green or blue color content


When the probability menu is shown and a transformation is selected,
its probability (within the group) and the group probability is shown in
the upper right corner.

The probability menu items:

quitreturn to the main menu

densityoverall density, in parts of available pixels

equalset all probabilities equal

=areaset all probabilities proportional to the area
of each transformation's area

Grp#+increase the group index of current transformation

grp#-decrease the group index of current transformation

Prgrp+increase the probability of current group

prgrp-decrease the probability of current group

0.1set the probability of current transformation to .1

.5set the probability of current transformation to .5

+increase the probability of current transformation

- increase the probability of current transformation


Example:

To see the fractal defined by an IFS file "leaf2.ifs" enter
vifs leaf2.ifs (at the DOS command prompter).



Support programs for making hardcopys
-------------------------------------

One way of making a hardcopy is to use a "screen grabber" program to
save the screen content into a file and then print it. A disadvantage
with this is that most printers have higher graphic resolution than
the computer screen and the picture looks grainy.

Another way to make a hardcopy is the BIFS program. BIFS draws the
fractal off-screen. The output is a binary (black and white) image
file in SBIF format (Simple Binary Image Format). The resolution is
only limited by available memory (don't use too many TSRs).

To print the SBIF file convert it to epson or postscript format with
SBIFEPS or SBIFPS. There also is a program named VSBIF that displays
(part of) a SBIF file on the screen.

The SBIFEPS program assumes you have an 8-pin epson printer. It uses
60 dots/inch (esc-K). If you have problems printing the output file from
SBIFEPS use the -b option to send the output to LPT1. (The DOS print
command usually can't handle binary files.)

The SBIFPS output file is a postscript program and you can use your
favorite text editor to modify it (e.g. the image size). If you set
the -b flag the image will be inverted (uses lots of toner).



Invocation syntax for BIFS:

BIFS [options] ifs_data_file

Options are:

-o fileoutput file name (default is standard output)
-x integerx size (default 512)
-y integery size (default 512)
-s integerx and y size (shorthand for square output)
-r numberrelative density (multiplier for the file value)
-idon't reduce the density if im mode (1/im_levels)
-qquiet mode, don't stop at keyboard input



Invocation syntax for VSBIF:

VSBIF [options] sbif_file

Options are:

-x integerx offset
-y integery offset



Invocation syntax for SBIFEPS:

SBIFEPS [options] sbif_file

Options are:

-o fileoutput file name (default is standard output)
-buse bios to print (on LPT1:)
-i integerindent amount (characters)
-x integerx offset
-y integery offset



Invocation syntax for SBIFPS:

SBIFPS [options] sbif_file

Options are:

-o fileoutput file name (default is standard output)
-bmake the background black (inverse)
-ssquare image output (default: fill the paper)



Examples:

Printing the "leaf2.ifs" fractal.

Generate the SBIF file: bifs leaf2.ifs -o leaf2.sbi
Check before printing: vsbif leaf2.sbi
Print on LPT1 (epson): sbifeps -b leaf2.sbi

Make a larger file for a postscript printer and reduce density:
bifs -o leaf2.sbi -s 1200 -r 0.3 leaf.ifs

Check the right edge before printing: vsbif -x 1000 leaf2.sbi
Make the postscript file: sbifps -o leaf2.ps leaf2.sbi




 December 11, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)