类 InterpolatingMicrosphere

java.lang.Object
org.hipparchus.analysis.interpolation.InterpolatingMicrosphere
直接已知子类:
InterpolatingMicrosphere2D

public class InterpolatingMicrosphere extends Object
用于 MicrosphereProjectionInterpolator 算法的实用类。
  • 构造器详细资料

    • InterpolatingMicrosphere

      protected InterpolatingMicrosphere(int dimension, int size, double maxDarkFraction, double darkThreshold, double background)
      创建一个未初始化的球体。子类负责调用add(double[]) add方法来初始化所有球体的面。
      参数:
      dimension - 数据空间的维度。
      size - 球体的表面元素数量。
      maxDarkFraction - 可以是暗的面的最大比例。如果“非照明”面的比例更大,则不会对值进行估计,而是返回background值。
      darkThreshold - 被认为是暗的面的照明值。
      background - 当maxDarkFraction阈值被超过时返回的值。
      抛出:
      MathIllegalArgumentException - 如果dimension <= 0size <= 0
      MathIllegalArgumentException - 如果darkThreshold < 0
      MathIllegalArgumentException - 如果maxDarkFraction不属于区间[0, 1]
    • InterpolatingMicrosphere

      public InterpolatingMicrosphere(int dimension, int size, double maxDarkFraction, double darkThreshold, double background, UnitSphereRandomVectorGenerator rand)
      从随机抽样的向量创建一个球体。
      参数:
      dimension - 数据空间的维度。
      size - 球体的表面元素数量。
      maxDarkFraction - 可以是暗的面的最大比例。如果“非照明”面的比例更大,则不会对值进行估计,而是返回background值。
      darkThreshold - 被认为是暗的面的照明值。
      background - 当maxDarkFraction阈值被超过时返回的值。
      rand - 用于创建微球的单位向量生成器。
      抛出:
      MathIllegalArgumentException - 如果生成的向量的大小与构造函数中设置的维度不匹配。
      MathIllegalArgumentException - 如果dimension <= 0size <= 0
      MathIllegalArgumentException - 如果darkThreshold < 0
      MathIllegalArgumentException - 如果maxDarkFraction不属于区间[0, 1]
    • InterpolatingMicrosphere

      protected InterpolatingMicrosphere(InterpolatingMicrosphere other)
      复制构造函数。
      参数:
      other - 要复制的实例。
  • 方法详细资料

    • copy

      public InterpolatingMicrosphere copy()
      执行复制。
      返回:
      此实例的副本。
    • getDimension

      public int getDimension()
      获取空间的维度。
      返回:
      空间维度的数量。
    • getSize

      public int getSize()
      获取球体的大小。
      返回:
      微球的表面元素数量。
    • value

      public double value(double[] point, double[][] samplePoints, double[] sampleValues, double exponent, double noInterpolationTolerance)
      估算请求位置的值。此微球放置在给定的point处,计算给定samplePoints对每个球面的贡献(照明),并执行插值(照明的积分)。
      参数:
      point - 插值点。
      samplePoints - 采样数据点。
      sampleValues - 对应samplePoints的采样数据值。
      exponent - 用于计算样本数据权重(距离衰减因子)的幂律中的指数。
      noInterpolationTolerance - 当pointsamplePoints之一的距离小于此值时,不会执行插值,而只会返回样本的值。
      返回:
      在给定point处的估算值。
      抛出:
      MathIllegalArgumentException - 如果exponent < 0
    • add

      protected void add(double[] normal, boolean copy)
      替换微球的第i个面。用于初始化微球面的方法。
      参数:
      normal - 面的法向量。
      copy - 是否复制给定的数组。
      抛出:
      MathIllegalArgumentException - 如果n的长度与空间维度不匹配。
      MathIllegalStateException - 如果该方法被调用的次数超过了球体的大小。