Class RingInterpolator


public class RingInterpolator extends OrthonormalTessellator
  • Field Details

    • ringMin

      protected float ringMin
    • ringMax

      protected float ringMax
    • cmap

      protected ColorMapper cmap
    • factor

      protected Color factor
  • Constructor Details

    • RingInterpolator

      public RingInterpolator(float ringMin, float ringMax, ColorMapper cmap, Color factor)
  • Method Details

    • build

      public Composite build(float[] x, float[] y, float[] z)
      Overrides:
      build in class OrthonormalTessellator
    • getInterpolatedRingPolygons

      public List<Polygon> getInterpolatedRingPolygons()
      Load data standing on an orthonormal grid.
      Each input point (i.e. the association of x[i], y[j], z[i][j]) will be represented by a polygon centered on this point. The default coordinates of this polygon will be:
      • x[i-1], y[j+1], z[i-1][j+1]
      • x[i-1], y[j-1], z[i-1][j-1]
      • x[i+1], y[j-1], z[i+1][j-1]
      • x[i+1], y[j+1], z[i+1][j+1]
      There are thus three types of polygons:
      • those that stand completely inside the ringMin and ringMax radius and that have the previous coordinates.
      • those that stand completely outside the ringMin and ringMax radius and that won't be added to the list of polygons.
      • those that have some points in and some points out of the ringMin and ringMax radius. These polygons are recomputed so that "out" points are replaced by two points that make the smooth contour. According to the number of "out" points, the modified polygon will gather 3, 4, or 5 points.
        As a consequence, it is suggested to provide data ranging outside of ringMin and ringMax, in order to be sure to have a perfect round surface.
      Parameters:
      ringMin - the minimum radius of this ring.
      ringMax - the maximum radius of this ring.
      colorFactor - a weighting factor for the color returned by the Colormap.
    • isInside

      protected boolean[] isInside(Point[] p, float[] radius, float minRadius, float maxRadius)
      Indicates which point lies inside and outside the given min and max radius.
    • radius2d

      protected float radius2d(Point p)