**The Mandelbrot/Julia Set radio buttons:** The radio buttons at the top of the dialog are a switch that lets you toggle between rendering Mandlebrot sets and Julia sets. This switch determines which of the additional controls below are enabled.

**The Preset Views drop-down list:** Dating all the way back to the earliest versions of *MM!,* this list includes a series of preset views that you can select. These views are ones that I found very interesting when I initially developed this program, and I've added to the list with each version of the program I've built. These views also make great starting points for zooming in even further. When you select a view, its parameters are copied into the various text boxes below. Note that there are only preset views of the Mandelbrot set; if you select Julia sets from the radio buttons, this drop-down becomes disabled. Also note that resolution, number of iterations, and choice of palette are not affected by the view.

**X and Y Minimum and Maximum values:** These determine the four boundary corners of the image to be rendered. These are decimal values ("doubles" for you programmers out there). For Mandelbrot sets, the X values must be between -2.25 and 0.75 while Y values must be between -1.5 and 1.5; for Julia sets, all values must be between -2.0 and 2.0. Maximum values must be greater than their comparable minimum values. If any of these conditions are not met, the parameters are considered invalid and the image will not be rendered. See the Mandelbrot and Julia Set Overview for more details on what these values represent.

**Julia X and Y values:** These parameters determine the Julia set's constant value. This should be unique for every Julia set. See the Mandelbrot and Julia Set Overview for more details on what these values represent. Note that when rendering Mandelbrot sets, these two boxes become disabled, as these parameters are not needed for Mandelbrot sets.

**Resolution:** This is a positive integer value representing the number of pixels to use for the width and height of the rendered image. Note that *MM!* can only rendered square images, where the height and width are the same value. Negative integers and decimal values are not permitted.

Note that the size of this number has a significant impact on the length of time required to render the image. The higher this number is, the larger the resulting image file will be and thus the greater the number of individual pixels that need to be rendered. Keep in minds that this relationship is exponential, because increasing one dimension (width) by ten also increases the other dimension (height), resulting in 10 x 10 = 100 additional pixels to render. When exploring, we recommend keeping this number low (say, around 300). This will allow images to be rendered relatively quickly. When you find something particularly interesting that you'd like to see in greater detail, you can then increase this value and render a larger image. One useful trick for generating desktop backgrounds or images for Web sites is to render the image at a higher resolution that you actually intend to use, then open the resulting image in your favorite image editor and scale the image down. This often blurs individual pixels together and gives the resulting image a much smoother look.

**# of Iterations:** This is a positive integer that represents the iterations that should be performed on a given point. See the Mandelbrot and Julia Set Overview for more details on what this value represents. Note that the size of this number has a significant impact on the length of time required to render the image. The higher this number is, the more calculations that need to be performed for each individual pixel in the image. Also note that if this value is set too low, portions of deeply zoomed images will begin to "escape" the calculation and will show up as large black spaces (or whatever you have set as your first "dark" color). Thus, the deeper you zoom into a given fractal, the higher you should make this number. You should also make sure this number is higher than the number of colors in your chosen palette, or you'll run out iterations before you use all the colors in the palette.

**Choose Palette... button:** Clicking this button launches the Palette Select dialog where you can choose which palette to use when you render the image. The "Current Palette" text above the button will let you know what the current palette is.

**Render!:** This button begins the rendering process. The parameters from the other controls are validated (as is the palette), this dialog will close, a Progress dialog is displayed, and a new execution thread is launched that actually performs the rendering process.

**Cancel button:** Clicking this button closes this dialog without rendering an image or modifying the active parameters.

[Return to Index] [Return to Command Overview]

© Copyright 2007, Jeffrey T. Darlington. All rights reserved.