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.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 |
|
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 |
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.
PjFractalImage
public PjFractalImage()
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.
The software JavaView® is copyright protected. All Rights Reserved.