0.0.4

net.cattaka.mathdrawer.entity
クラス MdMath

java.lang.Object
  上位を拡張 net.cattaka.mathdrawer.entity.MdMath

public class MdMath
extends java.lang.Object

作成者:
cattaka ベクトルの各種演算を行うためのクラス。

フィールドの概要
static java.lang.String NUMBER_FORMAT_REGEX
           
 
コンストラクタの概要
MdMath()
           
 
メソッドの概要
static double calcFromLine(Vector2d p, Vector2d l1, Vector2d l2)
          l1,l2を通る直線からpまでの距離を返します。
static int checkOnBlock(Vector2d a1, Vector2d a2, Vector2d b)
          a1とa2の間にbが存在するか調べる。
static int checkOnBlockInner(Vector3d a1, Vector3d a2, Vector3d b)
          a1とa2の間の内部にbが存在するか調べる。
static double cyclicDouble(double d)
          入力値を[0.0, 1.0)の範囲に変換します。
static boolean getIntersection(Vector2d dest, Vector2d p11, Vector2d p12, Vector2d p21, Vector2d p22)
          線分p11-p12と線分p21-p22(両端を含む)の共有点を求める。
static boolean getIntersection(Vector2d dest, Vector3d f1, Vector3d f2)
          2つの直線が交差する点を計算します。
static void getLineFunction(Vector3d dest, Vector2d pos1, Vector2d pos2)
          pos1とpos2を通る一次関数を得る。
static void interpolateColor4d(Color4d out, double rate, Color4d c1, Color4d c2)
          2つのColor4dを補完して新しい色を作成します。
static boolean isIntersect(Vector2d dest, Vector2d p11, Vector2d p12, Vector2d p21, Vector2d p22)
          線分p11-p12と線分p21-p22(両端を含む)の共有点を求める。
static boolean isIntersectInner(Vector2d dest, Vector2d p11, Vector2d p12, Vector2d p21, Vector2d p22)
          線分p11-p12の内部と線分p21-p22の内部(両端を含まない)の共有点を求める。
static boolean isOnLine(Vector2d a1, Vector2d a2, Vector2d b)
          a1とa2の線分上にbが存在するか調べる。
static boolean isOnLine(Vector3d a1, Vector3d a2, Vector3d b)
          a1とa2の線分上にbが存在するか調べる。
static boolean isOnLineInner(Vector2d a1, Vector2d a2, Vector2d b)
          a1とa2の線分の内部にbが存在するか調べる。
static boolean isOnLineInner(Vector3d a1, Vector3d a2, Vector3d b)
          a1とa2の線分の内部にbが存在するか調べる。
static double limitDouble(double d)
          入力値を[0.0, 1.0]の範囲に変換します。
static boolean solveQuadEquation(double[] ans, Vector3d args)
          0 = args.x * x^2 + args.y * y + args.zの二次関数の解2つを引数ansに出力する。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

NUMBER_FORMAT_REGEX

public static java.lang.String NUMBER_FORMAT_REGEX
コンストラクタの詳細

MdMath

public MdMath()
メソッドの詳細

cyclicDouble

public static double cyclicDouble(double d)
入力値を[0.0, 1.0)の範囲に変換します。

パラメータ:
d -
戻り値:

limitDouble

public static double limitDouble(double d)
入力値を[0.0, 1.0]の範囲に変換します。

パラメータ:
d -
戻り値:

isOnLineInner

public static boolean isOnLineInner(Vector2d a1,
                                    Vector2d a2,
                                    Vector2d b)
a1とa2の線分の内部にbが存在するか調べる。 a1==bまたはa2==bならばfalseを返す。

戻り値:
a1とa2の線分の内部にbが存在するならばtrue、そうでなければfalse。

interpolateColor4d

public static void interpolateColor4d(Color4d out,
                                      double rate,
                                      Color4d c1,
                                      Color4d c2)
2つのColor4dを補完して新しい色を作成します。

パラメータ:
out -
rate -
c1 -
c2 -

isOnLine

public static boolean isOnLine(Vector2d a1,
                               Vector2d a2,
                               Vector2d b)
a1とa2の線分上にbが存在するか調べる。 a1==bまたはa2==bならばtrueを返す。

戻り値:
a1とa2の線分上にbが存在するならばtrue、そうでなければfalse。

isOnLineInner

public static boolean isOnLineInner(Vector3d a1,
                                    Vector3d a2,
                                    Vector3d b)
a1とa2の線分の内部にbが存在するか調べる。 a1==bまたはa2==bならばfalseを返す。

戻り値:
a1とa2の線分の内部にbが存在するならばtrue、そうでなければfalse。

checkOnBlock

public static int checkOnBlock(Vector2d a1,
                               Vector2d a2,
                               Vector2d b)
a1とa2の間にbが存在するか調べる。 a1==bまたはa2==bならばtrueを返す。

戻り値:
a1より外側なら-1,a2より外側なら1,それ以外は0を返す。

checkOnBlockInner

public static int checkOnBlockInner(Vector3d a1,
                                    Vector3d a2,
                                    Vector3d b)
a1とa2の間の内部にbが存在するか調べる。 a1==bまたはa2==bならばfalseを返す。

戻り値:
a1より外側なら-1,a2より外側なら1,それ以外は0を返す。

isOnLine

public static boolean isOnLine(Vector3d a1,
                               Vector3d a2,
                               Vector3d b)
a1とa2の線分上にbが存在するか調べる。 a1==bまたはa2==bならばtrueを返す。

戻り値:
a1とa2の線分上にbが存在するならばtrue、そうでなければfalse。

isIntersectInner

public static boolean isIntersectInner(Vector2d dest,
                                       Vector2d p11,
                                       Vector2d p12,
                                       Vector2d p21,
                                       Vector2d p22)
線分p11-p12の内部と線分p21-p22の内部(両端を含まない)の共有点を求める。

パラメータ:
dest - 交点の出力先
p11 -
p12 -
p21 -
p22 -
戻り値:
共有点が存在するならばtrue。そうでなければfalse。

isIntersect

public static boolean isIntersect(Vector2d dest,
                                  Vector2d p11,
                                  Vector2d p12,
                                  Vector2d p21,
                                  Vector2d p22)
線分p11-p12と線分p21-p22(両端を含む)の共有点を求める。

パラメータ:
dest - 交点の出力先
p11 -
p12 -
p21 -
p22 -
戻り値:
共有点が存在するならばtrue。そうでなければfalse。

solveQuadEquation

public static boolean solveQuadEquation(double[] ans,
                                        Vector3d args)
0 = args.x * x^2 + args.y * y + args.zの二次関数の解2つを引数ansに出力する。

パラメータ:
ans - 長さ2の配列で解の出力先
args - 二次関数を表すベクトル
戻り値:
実数解を持つならばtrue、そうでないならfalse。

getIntersection

public static boolean getIntersection(Vector2d dest,
                                      Vector2d p11,
                                      Vector2d p12,
                                      Vector2d p21,
                                      Vector2d p22)
線分p11-p12と線分p21-p22(両端を含む)の共有点を求める。

パラメータ:
dest - 交点の出力先
p11 -
p12 -
p21 -
p22 -
戻り値:
共有点が存在するならばtrue。そうでなければfalse。

getLineFunction

public static void getLineFunction(Vector3d dest,
                                   Vector2d pos1,
                                   Vector2d pos2)
pos1とpos2を通る一次関数を得る。 dest.x * x + dest.y * y + dest.z = 0

パラメータ:
dest - 一次関数の出力先
pos1 -
pos2 -

getIntersection

public static boolean getIntersection(Vector2d dest,
                                      Vector3d f1,
                                      Vector3d f2)
2つの直線が交差する点を計算します。

パラメータ:
dest -
f1 -
f2 -
戻り値:

calcFromLine

public static double calcFromLine(Vector2d p,
                                  Vector2d l1,
                                  Vector2d l2)
l1,l2を通る直線からpまでの距離を返します。

パラメータ:
p -
l1 -
l2 -

0.0.4