类 InterpolatingMicrosphere
java.lang.Object
org.hipparchus.analysis.interpolation.InterpolatingMicrosphere
- 直接已知子类:
-
InterpolatingMicrosphere2D
用于
MicrosphereProjectionInterpolator
算法的实用类。
-
构造器概要
限定符构造器说明protected
InterpolatingMicrosphere
(int dimension, int size, double maxDarkFraction, double darkThreshold, double background) 创建一个未初始化的球体。InterpolatingMicrosphere
(int dimension, int size, double maxDarkFraction, double darkThreshold, double background, UnitSphereRandomVectorGenerator rand) 从随机采样的向量创建一个球体。protected
复制构造函数。 -
方法概要
-
构造器详细资料
-
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 <= 0
或size <= 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 <= 0
或size <= 0
。 -
MathIllegalArgumentException
- 如果darkThreshold < 0
。 -
MathIllegalArgumentException
- 如果maxDarkFraction
不属于区间[0, 1]
。
-
InterpolatingMicrosphere
复制构造函数。- 参数:
-
other
- 要复制的实例。
-
-
方法详细资料
-
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
- 当point
与samplePoints
之一的距离小于此值时,不会执行插值,而只会返回样本的值。 - 返回:
-
在给定
point
处的估算值。 - 抛出:
-
MathIllegalArgumentException
- 如果exponent < 0
。
-
add
protected void add(double[] normal, boolean copy) 替换微球的第i
个面。用于初始化微球面的方法。- 参数:
-
normal
- 面的法向量。 -
copy
- 是否复制给定的数组。 - 抛出:
-
MathIllegalArgumentException
- 如果n
的长度与空间维度不匹配。 -
MathIllegalStateException
- 如果该方法被调用的次数超过了球体的大小。
-