Android Open Source - AnkiStats Integral






From Project

Back to project page AnkiStats.

License

The source code is released under:

GNU General Public License

If you think the Android project AnkiStats listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * //from  www . j  a va2 s. co m
 */
package com.wildplot.android.rendering;

import com.wildplot.android.rendering.graphics.wrapper.Color;
import com.wildplot.android.rendering.graphics.wrapper.Graphics;
import com.wildplot.android.rendering.graphics.wrapper.Graphics2D;
import com.wildplot.android.rendering.graphics.wrapper.Rectangle;
import com.wildplot.android.rendering.interfaces.Drawable;
import com.wildplot.android.rendering.interfaces.Function2D;




/**
 * Integral marks the region between x axis and a function or another function for a given interval 
 *
 */
public class Integral implements Drawable {
  
  private Function2D function = null;
  
  private Function2D function2 = null;
  
  
  private PlotSheet plotSheet;
  
  private double start = 0;
  
  private double end = Math.PI;
  
  private Color color = new Color(0.7f, 1f, 0f, 0.4f);
  
  /**
   * set the color for integral area
   * @param color integral area color
   */
  public void setColor(Color color) {
    this.color = color;
  }

  /**
   * Constructor for Integral object for integral between a function and x-axis
   * @param function given function for the integral
   * @param plotSheet the sheet the integral will be drawn onto
   * @param start starting position
   * @param end ending position
   */
  public Integral(Function2D function, PlotSheet plotSheet, double start, double end) {
    super();
    this.function = function;
    this.plotSheet = plotSheet;
    this.start = start;
    this.end = end;
  }
  
  /**
   * Constructor for Integral object between two functions
   * @param function given function for the integral
   * @param function2 second given function for the integral
   * @param plotSheet the sheet the integral will be drawn onto
   * @param start starting position
   * @param end ending position
   */
  public Integral(Function2D function, Function2D function2, PlotSheet plotSheet, double start, double end) {
    super();
    this.function = function;
    this.function2 = function2;
    this.plotSheet = plotSheet;
    this.start = start;
    this.end = end;
  }


  /* (non-Javadoc)
   * @see rendering.Drawable#paint(java.awt.Graphics)
   */
  @Override
  public void paint(Graphics g) {
    
    Color oldColor = g.getColor();
    Rectangle field = g.getClipBounds();
    Graphics2D g2d = (Graphics2D)g;
    g2d.setColor(color);

        float[] startPoint   = plotSheet.toGraphicPoint(this.start, 0, field);
        float[] endPoint     = plotSheet.toGraphicPoint(this.end, 0, field);
    
    for(int i = Math.round(startPoint[0]); i<=endPoint[0];i++) {
      double currentX = plotSheet.xToCoordinate(i, field);
      double currentY = function.f(currentX);
      
      if(this.function2 != null){
        double currentY2 = function2.f(currentX);
        g2d.drawLine(plotSheet.xToGraphic(currentX, field), plotSheet.yToGraphic(currentY, field), plotSheet.xToGraphic(currentX, field), plotSheet.yToGraphic(currentY2, field));
      }else {
        g2d.drawLine(plotSheet.xToGraphic(currentX, field), plotSheet.yToGraphic(currentY, field), plotSheet.xToGraphic(currentX, field), plotSheet.yToGraphic(0, field));
      }
      
      
      
    }
    
    g2d = (Graphics2D)g;
    
    g.setColor(oldColor);

  }
  
  /*
   * (non-Javadoc)
   * @see rendering.Drawable#isOnFrame()
   */
  public boolean isOnFrame() {
    return false;
  }

  @Override
  public void abortAndReset() {
    // TODO Auto-generated method stub
    
  }

    @Override
    public boolean isClusterable() {
        return true;
    }

    @Override
    public boolean isCritical() {
        return false;
    }
}




Java Source Code List

com.wildplot.android.ankistats.AnkiDb.java
com.wildplot.android.ankistats.AnkiStatsActivity.java
com.wildplot.android.ankistats.AnkiStatsApplication.java
com.wildplot.android.ankistats.AnswerButton.java
com.wildplot.android.ankistats.ApplicationTest.java
com.wildplot.android.ankistats.CardsTypes.java
com.wildplot.android.ankistats.CollectionData.java
com.wildplot.android.ankistats.Forecast.java
com.wildplot.android.ankistats.HourlyBreakdown.java
com.wildplot.android.ankistats.Intervals.java
com.wildplot.android.ankistats.ReviewCount.java
com.wildplot.android.ankistats.Utils.java
com.wildplot.android.ankistats.WeeklyBreakdown.java
com.wildplot.android.parsing.Atom.java
com.wildplot.android.parsing.ExpressionFormatException.java
com.wildplot.android.parsing.Expression.java
com.wildplot.android.parsing.Factor.java
com.wildplot.android.parsing.Pow.java
com.wildplot.android.parsing.Term.java
com.wildplot.android.parsing.TopLevelParser.java
com.wildplot.android.parsing.TreeElement.java
com.wildplot.android.parsing.AtomTypes.FunctionXAtom.java
com.wildplot.android.parsing.AtomTypes.FunctionXYAtom.java
com.wildplot.android.parsing.AtomTypes.MathFunctionAtom.java
com.wildplot.android.parsing.AtomTypes.NumberAtom.java
com.wildplot.android.parsing.AtomTypes.VariableAtom.java
com.wildplot.android.parsing.AtomTypes.XVariableAtom.java
com.wildplot.android.parsing.AtomTypes.YVariableAtom.java
com.wildplot.android.rendering.AdvancedPlotSheet.java
com.wildplot.android.rendering.BarGraph.java
com.wildplot.android.rendering.DrawableContainer.java
com.wildplot.android.rendering.FunctionDrawer.java
com.wildplot.android.rendering.FunctionDrawer_y.java
com.wildplot.android.rendering.Integral.java
com.wildplot.android.rendering.LegendDrawable.java
com.wildplot.android.rendering.LinesPoints.java
com.wildplot.android.rendering.Lines.java
com.wildplot.android.rendering.MultiScreenPart.java
com.wildplot.android.rendering.PieChart.java
com.wildplot.android.rendering.PlotSheet.java
com.wildplot.android.rendering.PointDrawer2D.java
com.wildplot.android.rendering.RelativeColorGradient.java
com.wildplot.android.rendering.ReliefDrawer.java
com.wildplot.android.rendering.XAxisBarGraph.java
com.wildplot.android.rendering.XAxisHistoGram.java
com.wildplot.android.rendering.XAxis.java
com.wildplot.android.rendering.XGrid.java
com.wildplot.android.rendering.YAxisBarGraph.java
com.wildplot.android.rendering.YAxisHistoGram.java
com.wildplot.android.rendering.YAxis.java
com.wildplot.android.rendering.YGrid.java
com.wildplot.android.rendering.graphics.wrapper.BasicStroke.java
com.wildplot.android.rendering.graphics.wrapper.BufferedImage.java
com.wildplot.android.rendering.graphics.wrapper.Color.java
com.wildplot.android.rendering.graphics.wrapper.FontMetrics.java
com.wildplot.android.rendering.graphics.wrapper.Graphics2D.java
com.wildplot.android.rendering.graphics.wrapper.Graphics.java
com.wildplot.android.rendering.graphics.wrapper.Rectangle.java
com.wildplot.android.rendering.graphics.wrapper.Stroke.java
com.wildplot.android.rendering.interfaces.Drawable.java
com.wildplot.android.rendering.interfaces.Function2D.java
com.wildplot.android.rendering.interfaces.Function3D.java
com.wildplot.android.rendering.interfaces.Legendable.java
com.wildplot.android.rendering.interfaces.StepFunction2D.java