**The Mandelbrot/Julia Set Rendering Switch:** The first button at the top of the toolbar is a switch that lets you toggle between rendering Mandlebrot sets and Julia sets. When the letter "M" appears in the icon, you'll be rendering Mandelbrot sets; when the letter "J" appears, you're working with Julia sets. The button's tooltip will also tell you which mode you're in. This switch determines which of the additional controls below are displayed.

**The Palette button:** Clicking this button launches the Palette Select dialog where you can choose which palette to use when you render the image. The button's tooltip (where you hover your mouse over the button until some informational text is displayed) will let you know what the current palette is.

**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 disappear, 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.

**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.

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

[Return to Index] [Return to Command Overview]

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