funktiopiirturi
Class SurfaceXY

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by funktiopiirturi.SurfaceXY
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

 class SurfaceXY
extends javax.swing.JComponent

XY-koordinaatistoa/piirtopintaa esittävä luokka. On oikeastaan näkymä/ikkuna sellaiseen. Sisältää piirrettävät funktiot.


Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private static java.lang.String ABS_EXP_SHOWN_NORMALLY
           
private  double bottom
           
private  long coordLineExpX
           
private  long coordLineExpY
           
private  double coordLineStepX
           
private  double coordLineStepY
           
private  long firstHCoordLineNum
           
private  long firstVCoordLineNum
           
private  java.util.Vector<FuncXtoY> functions
           
private  int imgCenterX
           
private  int imgCenterY
           
private  long lastHCoordLineNum
           
private  long lastVCoordLineNum
           
private  double left
           
private static int MIN_LINE_STEP_PIXELS
           
private  double pixelHeight
           
private static int PIXELS_PER_ONE
           
private  double pixelsPerOneX
           
private  double pixelsPerOneY
           
private  double pixelWidth
           
private  double posX
           
private  double posY
           
private  double right
           
(package private) static long serialVersionUID
           
private  double top
           
private  double zoomX
           
private  double zoomY
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SurfaceXY()
          Luo tyhjän XY-koordinaatiston, ja asettaa sen perustilaan.
 
Method Summary
 void addFunction(FuncXtoY f)
          Lisää funktion piirrettävien funktioiden listaan.
 void clear()
          Poistaa kaikki funktiot ja tyhjentää piirtopinnan.
private  void drawCoords(java.awt.Graphics g)
          Piirtää koordinaatiston.
private  void drawFunc(java.awt.Graphics g, FuncXtoY f)
          Piirtää annetun funktion.
 double getZoomX()
          Palauttaa tämänhetkisen horisontaalisen suurennoskertoimen.
 double getZoomY()
          Palauttaa tämänhetkisen vertikaalisen suurennoskertoimen.
static void main(java.lang.String[] args)
          Testausmetodi.
protected  void paintComponent(java.awt.Graphics g)
          Piirtää koordinaatiston ja kuvaajat.
private  void reCalculate()
          Laskee funktioiden ja koordinaatiston piirtämisessä tarvittavat apuarvot.
 void setBounds(int x, int y, int width, int height)
          Muuttaa kuvan kokoa ja/tai aselmointia, ja laskee tarvittavat arvot uudelleen.
 void setZoomX(double newZoomX)
          Asettaa horisontaalisen suurennoskertoimen, ja aiheuttaa kuvan piirtämisen uudestaan.
 void setZoomY(double newZoomY)
          Asettaa vertikaalisen suurennoskertoimen, ja aiheuttaa kuvan piirtämisen uudestaan.
private static java.lang.String toString(long mant, long exp)
          Apufunktio, jota käytetään koordinaattiviivojen merkitsemiseen.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getWidth, getVisibleRect, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

PIXELS_PER_ONE

private static final int PIXELS_PER_ONE
See Also:
Constant Field Values

ABS_EXP_SHOWN_NORMALLY

private static final java.lang.String ABS_EXP_SHOWN_NORMALLY
See Also:
Constant Field Values

functions

private java.util.Vector<FuncXtoY> functions

zoomX

private double zoomX

zoomY

private double zoomY

posX

private double posX

posY

private double posY

imgCenterX

private int imgCenterX

imgCenterY

private int imgCenterY

left

private double left

right

private double right

top

private double top

bottom

private double bottom

pixelsPerOneX

private double pixelsPerOneX

pixelsPerOneY

private double pixelsPerOneY

pixelWidth

private double pixelWidth

pixelHeight

private double pixelHeight

MIN_LINE_STEP_PIXELS

private static final int MIN_LINE_STEP_PIXELS
See Also:
Constant Field Values

coordLineStepX

private double coordLineStepX

coordLineStepY

private double coordLineStepY

coordLineExpX

private long coordLineExpX

coordLineExpY

private long coordLineExpY

firstHCoordLineNum

private long firstHCoordLineNum

lastHCoordLineNum

private long lastHCoordLineNum

firstVCoordLineNum

private long firstVCoordLineNum

lastVCoordLineNum

private long lastVCoordLineNum
Constructor Detail

SurfaceXY

public SurfaceXY()
Luo tyhjän XY-koordinaatiston, ja asettaa sen perustilaan.

Method Detail

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Muuttaa kuvan kokoa ja/tai aselmointia, ja laskee tarvittavat arvot uudelleen.

Overrides:
setBounds in class java.awt.Component

paintComponent

protected void paintComponent(java.awt.Graphics g)
Piirtää koordinaatiston ja kuvaajat.

Overrides:
paintComponent in class javax.swing.JComponent
Parameters:
g - kuvapinta, jolle piirtäminen tapahtuu

drawFunc

private void drawFunc(java.awt.Graphics g,
                      FuncXtoY f)
Piirtää annetun funktion. Piirtovärinä käytetään viimeksi asetettua. Huom. tämä ei toimi idioottivarmasti; Jotkin funktioiden epäjatkuvuuskohdat saattavat piirtyä väärin.

Parameters:
g - grafiikkapinta, jolle piirtäminen tapahtuu
f - piirrettävä funktio

drawCoords

private void drawCoords(java.awt.Graphics g)
Piirtää koordinaatiston. Tämä metodi piirtää valitsemansa kymmenen potenssin välein koordinaattiviivoja, ja merkitsee niiden etäisyyden origosta. Mahdollisesti kuvassa näkyvät koordinaattiakselit piirretään hieman tummemmalla.

Parameters:
g - kuvapinta, jolle piirtäminen tapahtuu

reCalculate

private void reCalculate()
Laskee funktioiden ja koordinaatiston piirtämisessä tarvittavat apuarvot. Tätä metodia kutsutaan kun esimerkiksi koordinaatiston kokoa tai suurennoskerrointa muutetaan.


addFunction

public void addFunction(FuncXtoY f)
Lisää funktion piirrettävien funktioiden listaan. Aiheuttaa kuvan piirtämisen uudelleen.

Parameters:
f - lisättävä funktio

setZoomX

public void setZoomX(double newZoomX)
Asettaa horisontaalisen suurennoskertoimen, ja aiheuttaa kuvan piirtämisen uudestaan. Arvot jotka ovat pienempiä tai yhtäsuuria kuin nolla eivät muuta suurennosta.

Parameters:
newZoomX - uusi suurennoskerroin

setZoomY

public void setZoomY(double newZoomY)
Asettaa vertikaalisen suurennoskertoimen, ja aiheuttaa kuvan piirtämisen uudestaan. Arvot jotka ovat pienempiä tai yhtäsuuria kuin nolla eivät muuta suurennosta.

Parameters:
newZoomY - uusi suurennoskerroin

getZoomX

public double getZoomX()
Palauttaa tämänhetkisen horisontaalisen suurennoskertoimen.

Returns:
suurennoskerroin

getZoomY

public double getZoomY()
Palauttaa tämänhetkisen vertikaalisen suurennoskertoimen.

Returns:
suurennoskerroin

clear

public void clear()
Poistaa kaikki funktiot ja tyhjentää piirtopinnan.


toString

private static java.lang.String toString(long mant,
                                         long exp)
Apufunktio, jota käytetään koordinaattiviivojen merkitsemiseen. Palauttaa mantissan ja eksponentin perusteella oikean luvun halutusti muotoillun string-esityksen.

Parameters:
mant - luvun mantissa
exp - luvun eksponentti
Returns:
string-esitys luvusta

main

public static void main(java.lang.String[] args)
Testausmetodi. Piirtelee muutamia kuvaajia ruudulle.

Parameters:
args - ohjelmalle välitettävät parametrit (ei vaikutusta)