JavaView® v2.00.008

vgp.tutor.fractal
Class PjFractalImage

java.lang.Object
  |
  +--jv.object.PsObject
        |
        +--jv.project.PjProject
              |
              +--vgp.tutor.fractal.PjFractalImage
All Implemented Interfaces:
java.lang.Cloneable, PsTimeListenerIf, PsUpdateIf, PvPickListenerIf, java.io.Serializable

public class PjFractalImage
extends PjProject

Demo project for working with pixel images. Project displays a Mandelbrot set. Zoom into Mandelbrot set by marking a rectangle in display using mark-mode.

Version:
26.09.99, 1.00 revised (kp)
26.09.99, 1.00 created (kp)
Author:
Konrad Polthier
See Also:
Serialized Form

Field Summary
protected  PdVector m_bounds
          Bounds of display in world coordinates.
protected  PuInteger m_coarseness
          Coarseness, i.e. size of pixel square which is colored uniformly.
protected  java.awt.Image m_image
          Image to be used as background in display.
protected  int m_imageHeight
          Height of display canvas.
protected  int m_imageWidth
          Width of display canvas.
protected  PuInteger m_maxNumIter
          Maximal number of iterations until sequence is decided to diverge.
 
Fields inherited from class jv.project.PjProject
m_anim, m_bAutoFit, m_display, m_displayList, m_geometry, m_parm, m_rootGeometry
 
Fields inherited from class jv.object.PsObject
HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_MATERIAL_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_SELECTED, IS_USED, m_infoPanel, m_name, m_panelList, m_parent, m_tag, m_updateList, NUM_TAGS
 
Constructor Summary
PjFractalImage()
           
 
Method Summary
 void computeImage(double xMin, double yMin, double xMax, double yMax)
           
 void drawImage(int[] pix, int width, int height, double xMin, double yMin, double xMax, double yMax)
          This is Mandelbrot iteration f(z)=z*z+c.
 void init()
          Initialize and reset project, stops the running animation if any.
 void markVertices(PvPickEvent pickEvent)
          Mark a set of vertices of a geometry within a given bounding box.
 void start()
          Method is invoked during loading of a project in JavaView.
 boolean update(java.lang.Object event)
          Update the class whenever a child has changed.
 
Methods inherited from class jv.project.PjProject
addDisplay, addGeometry, addGeometry, dispose, dragDisplay, dragInitial, dragVertex, fitDisplays, getAnimation, getDisplay, getDisplays, getGeometry, getGeometry, getNumGeometries, getParameter, getViewer, hasAnimation, hasDisplay, isEnabledAutoFit, pickDisplay, pickInitial, pickVertex, removeDisplay, removeGeometries, removeGeometry, selectDisplay, selectGeometry, setAnimation, setDisplay, setEnabledAutoFit, setParameter, setTime, setViewer, stop, unmarkVertices
 
Methods inherited from class jv.object.PsObject
addInspector, addUpdateListener, clearTag, clone, clone, clone, copy, getFather, getInfoPanel, getInspector, getName, getNumObjects, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, removeInspector, removeUpdateListener, setName, setParent, setTag, toString, updatePanels
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface jv.anim.PsTimeListenerIf
getName
 
Methods inherited from interface jv.project.PvPickListenerIf
getName
 
Methods inherited from interface jv.object.PsUpdateIf
getFather, getName, setParent
 

Field Detail

m_image

protected java.awt.Image m_image
Image to be used as background in display.

m_imageHeight

protected int m_imageHeight
Height of display canvas.

m_imageWidth

protected int m_imageWidth
Width of display canvas.

m_maxNumIter

protected PuInteger m_maxNumIter
Maximal number of iterations until sequence is decided to diverge.

m_bounds

protected PdVector m_bounds
Bounds of display in world coordinates.

m_coarseness

protected PuInteger m_coarseness
Coarseness, i.e. size of pixel square which is colored uniformly.
Constructor Detail

PjFractalImage

public PjFractalImage()
Method Detail

init

public void init()
Description copied from class: PjProject
Initialize and reset project, stops the running animation if any. Does not reset any registered display nor geometry. They must be reset individually in each subclass.
Overrides:
init in class PjProject

start

public void start()
Description copied from class: PjProject
Method is invoked during loading of a project in JavaView.

If a project has an animation object, then the animation panel is shown when the project's this start() method is invoked during loading of the project. Use setAnimation(PsAnimation) to register an animation.

If auto fit is enabled then scenery is scaled to fit in each display.

Overrides:
start in class PjProject
Following copied from class: jv.project.PjProject
See Also:
PvViewerIf.start(), #isEnabledAutoFit(boolean)

update

public boolean update(java.lang.Object event)
Update the class whenever a child has changed. Method is usually invoked from the children.
Overrides:
update in class PsObject
Following copied from interface: jv.object.PsUpdateIf
Parameters:
event - carries a lot of information
Returns:
true if event has been handled, otherwise false
See Also:
PsObject, PsUpdateIf.getFather(), PsUpdateIf.setParent(PsUpdateIf)

markVertices

public void markVertices(PvPickEvent pickEvent)
Mark a set of vertices of a geometry within a given bounding box. Method is called when user marks a rectangular array in display.
Overrides:
markVertices in class PjProject
Parameters:
markBox - contains four coplanar points on the bounding prism, and direction of prism.

computeImage

public void computeImage(double xMin,
                         double yMin,
                         double xMax,
                         double yMax)

drawImage

public void drawImage(int[] pix,
                      int width,
                      int height,
                      double xMin,
                      double yMin,
                      double xMax,
                      double yMax)
This is Mandelbrot iteration f(z)=z*z+c. For each c check whether iteration diverges to infinity.

JavaView® v2.00.008

The software JavaView® is copyright protected. All Rights Reserved.