public class FNMath
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
FNMath.PosColorEntry |
| Modifier and Type | Field and Description |
|---|---|
static double |
ABSOLUTE_ZERO_TEMP
絶対零度
|
| Constructor and Description |
|---|
FNMath() |
| Modifier and Type | Method and Description |
|---|---|
static double |
clamp(double value,
double min,
double max)
数値をminより大きく、maxより小さくする
|
static float |
clamp(float value,
float min,
float max)
数値をminより大きく、maxより小さくする
|
static int |
clamp(int value,
int min,
int max)
数値をminより大きく、maxより小さくする
|
static long |
clamp(long value,
long min,
long max)
数値をminより大きく、maxより小さくする
|
static double |
fastInvSqrt(double d)
高速逆平方根
|
static float |
fastInvSqrt(float f)
高速逆平方根
|
static void |
generateColorMandelbrot(int width,
int height,
double posX,
double posY,
double zoom,
int max,
java.util.function.Consumer<FNMath.PosColorEntry> pos)
マンデルブロ集合を生成
|
static void |
generateMandelbrotSet(int width,
int height,
double posX,
double posY,
double zoom,
int num,
java.util.function.Consumer<FNVec2i> pos)
白黒マンデルブロ集合を生成
|
static double |
getAngle(FNVec2d from,
FNVec2d to)
2点の線の角度を求める
|
static FNVec3d |
getAngle(FNVec3d from,
FNVec3d to)
2点の線の角度を求める
|
static FNVec2d |
getLinesIntersectPoint(FN2dLine line1,
FN2dLine line2)
二つの2次元の線の交差点
|
static FNVec2d |
getLinesIntersectPoint(FNVec4d line1,
FNVec4d line2)
二つの2次元の線の交差点
|
static boolean |
isPointOnLine(FN2dLine line,
FNVec2d point)
指定の線の上に点があるかどうか
|
static float |
lerp(float delta,
float old,
float value)
線形補完
|
static float |
lerpRoted(float delta,
float old,
float value)
線形補完(円形)
|
static float |
lerpRoted(float delta,
float old,
float value,
float maxValue)
線形補完(円形)
|
static boolean |
mandelbrot(double x,
double y,
int num)
マンデルブロ
|
static boolean |
mandelbrot(@NotNull FNComplex complex,
int num)
マンデルブロ
|
static double |
max(double value,
double... values)
値の中で最も大きい値を出力
|
static float |
max(float value,
float... values)
値の中で最も大きい値を出力
|
static int |
max(int value,
int... values)
値の中で最も大きい値を出力
|
static long |
max(long value,
long... values)
値の中で最も大きい値を出力
|
static double |
min(double value,
double... values)
値の中で最も小さい値を出力
|
static float |
min(float value,
float... values)
値の中で最も小さい値を出力
|
static int |
min(int value,
int... values)
値の中で最も小さい値を出力
|
static long |
min(long value,
long... values)
値の中で最も小さい値を出力
|
static @NotNull FNVec2d |
scale(double w,
double h)
幅と高さのスケールを取得
|
static double |
toCelsiusTemp(double kelvin)
絶対温度をセ氏温度へ変換
|
static float |
toCelsiusTemp(float kelvin)
絶対温度をセ氏温度へ変換
|
static int |
toCelsiusTemp(int kelvin)
絶対温度をセ氏温度へ変換
|
static long |
toCelsiusTemp(long kelvin)
絶対温度をセ氏温度へ変換
|
static @NotNull FNTriple<java.lang.Double,java.lang.Double,java.lang.Double> |
toEulerAngle(double x,
double y,
double z,
double w)
クォータニオンからオイラー角へ変換
|
static double |
toKelvinTemp(double celsius)
セ氏温度を絶対温度へ変換
|
static float |
toKelvinTemp(float celsius)
セ氏温度を絶対温度へ変換
|
static int |
toKelvinTemp(int celsius)
セ氏温度を絶対温度へ変換
|
static long |
toKelvinTemp(long celsius)
セ氏温度を絶対温度へ変換
|
static @NotNull FNQuadruple<java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double> |
toQuaternion(double roll,
double pitch,
double yaw)
オイラー角からクォータニオンへ変換
|
static @NotNull FNPair<FNVec2f,FNVec2f> |
trans4to2CornerPlanes(@NotNull FNVec2f v1,
@NotNull FNVec2f v2,
@NotNull FNVec2f v3,
@NotNull FNVec2f v4)
4点の平面から2点の平面の座標へ変換
|
public static final double ABSOLUTE_ZERO_TEMP
public static float toKelvinTemp(float celsius)
celsius - セ氏温度public static float toCelsiusTemp(float kelvin)
kelvin - 絶対温温度public static int toKelvinTemp(int celsius)
celsius - セ氏温度public static int toCelsiusTemp(int kelvin)
kelvin - 絶対温温度public static long toKelvinTemp(long celsius)
celsius - セ氏温度public static long toCelsiusTemp(long kelvin)
kelvin - 絶対温温度public static double toKelvinTemp(double celsius)
celsius - セ氏温度public static double toCelsiusTemp(double kelvin)
kelvin - 絶対温温度public static int clamp(int value,
int min,
int max)
value - 対象数値min - 最小値max - 最大値public static long clamp(long value,
long min,
long max)
value - 対象数値min - 最小値max - 最大値public static float clamp(float value,
float min,
float max)
value - 対象数値min - 最小値max - 最大値public static double clamp(double value,
double min,
double max)
value - 対象数値min - 最小値max - 最大値public static boolean mandelbrot(double x,
double y,
int num)
x - xy - ynum - 度数public static boolean mandelbrot(@NotNull
@NotNull FNComplex complex,
int num)
complex - 複素数num - 度数public static void generateMandelbrotSet(int width,
int height,
double posX,
double posY,
double zoom,
int num,
java.util.function.Consumer<FNVec2i> pos)
width - 横height - 縦posX - 中心XposY - 中心Yzoom - 拡大度(1以上)num - 度数pos - fillpublic static void generateColorMandelbrot(int width,
int height,
double posX,
double posY,
double zoom,
int max,
java.util.function.Consumer<FNMath.PosColorEntry> pos)
width - 横height - 縦posX - 中心XposY - 中心Yzoom - 拡大度(1以上)max - 最大値pos - fill@Contract(value="_, _ -> new") @NotNull public static @NotNull FNVec2d scale(double w, double h)
w - 幅h - 高さ@Contract(pure=true)
public static int min(int value,
int... values)
value - 値values - 値配列@Contract(pure=true)
public static float min(float value,
float... values)
value - 値values - 値配列@Contract(pure=true)
public static double min(double value,
double... values)
value - 値values - 値配列@Contract(pure=true)
public static long min(long value,
long... values)
value - 値values - 値配列@Contract(pure=true)
public static int max(int value,
int... values)
value - 値values - 値配列@Contract(pure=true)
public static float max(float value,
float... values)
value - 値values - 値配列@Contract(pure=true)
public static double max(double value,
double... values)
value - 値values - 値配列@Contract(pure=true)
public static long max(long value,
long... values)
value - 値values - 値配列@Contract(value="_, _, _, _ -> new") @NotNull public static @NotNull FNPair<FNVec2f,FNVec2f> trans4to2CornerPlanes(@NotNull @NotNull FNVec2f v1, @NotNull @NotNull FNVec2f v2, @NotNull @NotNull FNVec2f v3, @NotNull @NotNull FNVec2f v4)
v1 - 座標1v2 - 座標2v3 - 座標3v4 - 座標4@NotNull public static @NotNull FNQuadruple<java.lang.Double,java.lang.Double,java.lang.Double,java.lang.Double> toQuaternion(double roll, double pitch, double yaw)
@NotNull public static @NotNull FNTriple<java.lang.Double,java.lang.Double,java.lang.Double> toEulerAngle(double x, double y, double z, double w)
public static float fastInvSqrt(float f)
f - 値public static double fastInvSqrt(double d)
d - 値public static float lerp(float delta,
float old,
float value)
delta - 経過old - 最終値value - 値public static float lerpRoted(float delta,
float old,
float value)
delta - 経過old - 最終値value - 値public static float lerpRoted(float delta,
float old,
float value,
float maxValue)
delta - 経過old - 最終値value - 値maxValue - 360回転したときの検知用最大値public static FNVec2d getLinesIntersectPoint(FNVec4d line1, FNVec4d line2)
public static FNVec2d getLinesIntersectPoint(FN2dLine line1, FN2dLine line2)
public static boolean isPointOnLine(FN2dLine line, FNVec2d point)
line - 線point - 点public static double getAngle(FNVec2d from, FNVec2d to)
from - 開始点to - 終了点