[前へ] [目次へ] [次へ]

Math (ネイティブネームクラス)


このクラスは数学関数を扱うクラスです。

このクラスはネームクラスです。
ネームクラスは全てがクラスメソッドとクラス共有変数で構成され、 using でグローバル名前空間に展開できます。
また、原則としてインスタンスを作成する必要はありません。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

名前概要
public操作メソッド Sinサインを求めます
public操作メソッド Cosコサインを求めます
public操作メソッド Tanタンジェントを求めます
public操作メソッド Asinアークサインを求めます
public操作メソッド Acosアークコサインを求めます
public操作メソッド Atanアークタンジェントを求めます
public操作メソッド Atan2アークタンジェントを求めます
public操作メソッド SinRr計算付きでサインを求めます
public操作メソッド CosRr計算付きでコサインを求めます
public操作メソッド AsinRr計算付きでアークサインを求めます
public操作メソッド AcosRr計算付きでアークコサインを求めます
public操作メソッド Log対数を求めます
public操作メソッド Logeeを底とする対数を求めます
public操作メソッド Log1010を底とする対数を求めます
public操作メソッド Sqrt平方根を求めます
public操作メソッド Cbrt立方根を求めます
public操作メソッド Expeを底とする指数を求めます
public操作メソッド Powべき乗を求めます
public操作メソッド Sinhハイパーボリックサインを求めます
public操作メソッド Coshハイパーボリックコサインを求めます
public操作メソッド Tanhハイパーボリックタンジェントを求めます
public操作メソッド GCD最大公約数を求めます
public操作メソッド LCM最小公倍数を求めます
public操作メソッド Deg2Rad度単位をラジアン単位に変換します
public操作メソッド Rad2Degラジアン単位を度単位に変換します
public操作メソッド Distance原点からのユークリッド距離を求めます
public操作メソッド NormalizeAngleラジアン単位の角度を正規化します
public操作メソッド DiffAngleラジアン単位の角度差を求めます
public操作メソッド Angle2XDirラジアン単位の角度のX軸方向を求めます
public操作メソッド Angle2YDirラジアン単位の角度のY軸方向を求めます
public操作メソッド AdjustSin8方向補正付きのサインを求めます
public操作メソッド AdjustCos8方向補正付きのコサインを求めます
public操作メソッド AdjustTan8方向補正付きのタンジェントを求めます
public操作メソッド AdjustSinRr計算付きで8方向補正付きのサインを求めます
public操作メソッド AdjustCosRr計算付きで8方向補正付きのコサインを求めます
public操作メソッド SinReversesinを三角波を基準に反転した関数
public操作メソッド CosReversecosを三角波を基準に反転した関数
public操作メソッド SinReverseRr計算付きでsinを三角波を基準に反転した関数
public操作メソッド CosReverseRr計算付きでcosを三角波を基準に反転した関数
public操作メソッド AdjustSinReverse8方向補正付きのsinを三角波を基準に反転した関数
public操作メソッド AdjustCosReverse8方向補正付きのcosを三角波を基準に反転した関数
public操作メソッド AdjustSinReverseRr計算付きで8方向補正付きのsinを三角波を基準に反転した関数
public操作メソッド AdjustCosReverseRr計算付きで8方向補正付きのcosを三角波を基準に反転した関数
public操作メソッド QuadraticEquation二次方程式を解きます
public操作メソッド QuadraticEquationPlusOnly二次方程式を解き、0以上の解だけを返します
public操作メソッド Collide1D1次元の衝突計算を行います
public操作メソッド Collide2D2次元の衝突計算を行います
public比較・判定メソッド AngleInRange指定した角度が指定範囲内にあるか判定します
public比較・判定メソッド PointInCircle指定した点が指定した円内にあるか判定します
public比較・判定メソッド PointInRect指定した点が指定した矩形内にあるか判定します
public比較・判定メソッド LineInCircle指定した線分が指定した円内にあるか判定します
public比較・判定メソッド LineInRect指定した線分が指定した矩形内にあるか判定します
public比較・判定メソッド CircleInCircle指定した円が指定した円内にあるか判定します
public比較・判定メソッド CircleInRect指定した円が指定した矩形内にあるか判定します
public比較・判定メソッド RectInCircle指定した矩形が指定した円内にあるか判定します
public比較・判定メソッド RectInRect指定した矩形が指定した矩形内にあるか判定します
public操作メソッド LPNearest指定した線分上の、指定した点との最接近座標を求めます
public比較・判定メソッド LLIntersection指定した二本の線分の交点を求めます
public比較・判定メソッド LvCOverlap指定した線分と指定した円に重複する部分があるか判定します
public比較・判定メソッド LCOverlap指定した線分と指定した円に重複する部分があるか判定します
public比較・判定メソッド LROverlap指定した線分と指定した矩形に重複する部分があるか判定します
public比較・判定メソッド CCOverlap指定した二つの円に重複する部分があるか判定します
public比較・判定メソッド CROverlap指定した円と指定した矩形に重複する部分があるか判定します
public比較・判定メソッド RROverlap指定した二つの矩形に重複する部分があるか判定します
public比較・判定メソッド AAOverlap指定した二つの角度範囲に重複する部分があるか判定します
public操作メソッド CalcAngleRangeInSightRC原点から指定した矩形が見える角度範囲を求めます
public操作メソッド CalcAngleRangeInSightTR原点から指定した三角形が見える角度範囲を求めます
public操作メソッド CalcAngleRangeInSightQR原点から指定した四角形が見える角度範囲を求めます
public操作メソッド CalcAngleRangeInSightCR原点から指定した円が見える角度範囲を求めます
public操作メソッド CalcLineGrid指定した線分が通過するグリッドの座標リストを求めます
public操作メソッド CalcCircumferenceGrid指定した円弧が通過するグリッドの座標リストを求めます
public操作メソッド PPaOrthogonal指定した点と指定した角度で移動する点の最接近座標を求めます
public比較・判定メソッド PLaIntersection指定した点と指定した角度で移動する線分が接触するか判定します
public比較・判定メソッド PCaIntersection指定した点と指定した角度で移動する円が接触するか判定します
public比較・判定メソッド PRaIntersection指定した点と指定した角度で移動する矩形が接触するか判定します
public比較・判定メソッド LPaIntersection指定した線分と指定した角度で移動する点が接触するか判定します
public比較・判定メソッド LLaIntersection指定した線分と指定した角度で移動する線分が接触するか判定します
public比較・判定メソッド LCaIntersection指定した線分と指定した角度で移動する円が接触するか判定します
public比較・判定メソッド LRaIntersection指定した線分と指定した角度で移動する矩形が接触するか判定します
public比較・判定メソッド CPaIntersection指定した円と指定した角度で移動する点が接触するか判定します
public比較・判定メソッド CLaIntersection指定した円と指定した角度で移動する線分が接触するか判定します
public比較・判定メソッド CCaIntersection指定した円と指定した角度で移動する円が接触するか判定します
public比較・判定メソッド CRaIntersection指定した円と指定した角度で移動する矩形が接触するか判定します
public比較・判定メソッド RPaIntersection指定した矩形と指定した角度で移動する点が接触するか判定します
public比較・判定メソッド RLaIntersection指定した矩形と指定した角度で移動する線分が接触するか判定します
public比較・判定メソッド RCaIntersection指定した矩形と指定した角度で移動する円が接触するか判定します
public比較・判定メソッド RRaIntersection指定した矩形と指定した角度で移動する矩形が接触するか判定します
public操作メソッド PsPvAim指定したベクトルで移動する点を指定した速度で動く点で衝突させるための角度を求めます
public操作メソッド PaPvAim指定したベクトルで移動する点を指定した角度で動く点で衝突させるための速度を求めます
public操作メソッド PPvtAim指定したベクトルで移動する点を指定した時間後に衝突させるための角度と速度を求めます
public操作メソッド Min指定した全引数を整数で比較し、その最小値を返します
public操作メソッド Max指定した全引数を整数で比較し、その最大値を返します
public操作メソッド MinF指定した全引数を小数で比較し、その最小値を返します
public操作メソッド MaxF指定した全引数を小数で比較し、その最大値を返します
public操作メソッド Top1Bit1になっている最上位ビットの位置を返します
public操作メソッド Bottom1Bit1になっている最下位ビットの位置を返します
public操作メソッド Count1Bit1になっているビット数を返します
public操作メソッド RateI指定値の値域内での比率を求めます
public操作メソッド RateF指定値の値域内での比率を求めます

●クラスメンバメソッド

   このクラスはクラスメンバメソッドを持っていません。

●クラス共有変数

名前概要
readableconst Eネイピア数
readableconst PI円周率
readableconst HALFPI円周率/2
readableconst PIx2円周率*2
readableconst INFINITY無限大

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_MATH
クラス名: FGESNC_Math



Math::Sin

public static Float Sin( IFloat rad_angle)

   rad_angle のサインを求めて返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度のサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::Cos

public static Float Cos( IFloat rad_angle)

   rad_angle のコサインを求めて返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度のコサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::Tan

public static Float Tan( IFloat rad_angle)

   rad_angle のタンジェントを求めて返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度のタンジェントを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::Asin

public static Float Asin( IFloat val)

   val のアークサインを求めて返します。
   戻り値はラジアン単位です。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:指定した値のアークサイン(ラジアン単位)を返します。

IFloat val :計算する値

先頭へ


Math::Acos

public static Float Acos( IFloat val)

   val のアークコサインを求めて返します。
   戻り値はラジアン単位です。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:指定した値のアークコサイン(ラジアン単位)を返します。

IFloat val :計算する値

先頭へ


Math::Atan

public static Float Atan( IFloat val)

   val のアークタンジェントを求めて返します。
   戻り値はラジアン単位です。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:指定した値のアークタンジェント(ラジアン単位)を返します。

IFloat val :計算する値

先頭へ


Math::Atan2

public static Float Atan2( IFloat y, IFloat x)

   指定した座標のアークタンジェントを求めて返します。
   戻り値はラジアン単位です。
   このメソッドは x が0でも動作します。引数列が y,x であることに注意してください。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した座標のアークタンジェント(ラジアン単位)を返します。

IFloat y :計算する座標のY座標
IFloat x :計算する座標のX座標

先頭へ


Math::SinR

public static Float SinR( IFloat rad_angle, IFloat r)

   rad_angle のサインを求めて、 r を乗算して返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度のサインに半径を乗算して返します。

IFloat rad_angle :計算する角度(ラジアン単位)
IFloat r :半径

先頭へ


Math::CosR

public static Float CosR( IFloat rad_angle, IFloat r)

   rad_angle のコサインを求めて、 r を乗算して返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度のコサインに半径を乗算して返します。

IFloat rad_angle :計算する角度(ラジアン単位)
IFloat r :半径

先頭へ


Math::AsinR

public static Float AsinR( IFloat val, IFloat r)

   (val/r).Clamp(-1.0,1.0) のアークサインを求めて返します。
   戻り値はラジアン単位です。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した値のアークサイン(ラジアン単位)を返します。

IFloat val :計算する値
IFloat r :半径

先頭へ


Math::AcosR

public static Float AcosR( IFloat val, IFloat r)

   (val/r).Clamp(-1.0,1.0) のアークコサインを求めて返します。
   戻り値はラジアン単位です。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した値のアークコサイン(ラジアン単位)を返します。

IFloat val :計算する値
IFloat r :半径

先頭へ


Math::Log

public static Float Log( IFloat val, IFloat base)

   val の base を底とする対数を求めて返します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値
IFloat base :底

先頭へ


Math::Loge

public static Float Loge( IFloat val)

   val のネイピア数を底とする対数を求めて返します。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値

先頭へ


Math::Log10

public static Float Log10( IFloat val)

   val の10を底とする対数を求めて返します。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値

先頭へ


Math::Sqrt

public static Float Sqrt( IFloat val)

   val の平方根を求めて返します。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値

先頭へ


Math::Cbrt

public static Float Cbrt( IFloat val)

   val の立方根を求めて返します。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値

先頭へ


Math::Exp

public static Float Exp( IFloat val)

   val のネイピア数を底とする指数を求めて返します。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値

先頭へ


Math::Pow

public static Float Pow( IFloat val, IFloat exp)

   val の exp 乗を求めて返します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値
IFloat exp :指数

先頭へ


Math::Sinh

public static Float Sinh( IFloat val)

   val のハイパーボリックサインを求めて返します。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値

先頭へ


Math::Cosh

public static Float Cosh( IFloat val)

   val のハイパーボリックコサインを求めて返します。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値

先頭へ


Math::Tanh

public static Float Tanh( IFloat val)

   val のハイパーボリックタンジェントを求めて返します。

   このメソッドは最初に val から INativeFloat による取得を試みます。
   これに失敗した場合、 val.Get を呼び出します。

戻り値:計算結果を返します。

IFloat val :計算する値

先頭へ


Math::GCD

public static Integer GCD( IInteger m, IInteger n)

   m と n の最大公約数(両方を割り切れる最大の整数)を求めて返します。

   このメソッドは最初に各引数から INativeInteger による取得を試みます。
   これに失敗した場合、 IInteger@@Get を呼び出します。

戻り値:計算結果を返します。

IInteger m :最大公約数を求める値1
IInteger n :最大公約数を求める値2

先頭へ


Math::LCM

public static Integer LCM( IInteger m, IInteger n)

   m と n の最小公倍数(両方の倍数かつ最小の正の整数)を求めて返します。

   このメソッドは最初に各引数から INativeInteger による取得を試みます。
   これに失敗した場合、 IInteger@@Get を呼び出します。

戻り値:計算結果を返します。

IInteger m :最小公倍数を求める値1
IInteger n :最小公倍数を求める値2

先頭へ


Math::Deg2Rad

public static Float Deg2Rad( IFloat degree)

   degree (度単位)の値をラジアン単位に変換して返します。

   このメソッドは最初に degree から INativeFloat による取得を試みます。
   これに失敗した場合、 degree.Get を呼び出します。

戻り値:変換結果を返します。

IFloat degree :変換する角度(度単位)

先頭へ


Math::Rad2Deg

public static Float Rad2Deg( IFloat radian)

   radian (ラジアン単位)の値を度単位に変換して返します。

   このメソッドは最初に radian から INativeFloat による取得を試みます。
   これに失敗した場合、 radian.Get を呼び出します。

戻り値:変換結果を返します。

IFloat radian :変換する角度(ラジアン単位)

先頭へ


Math::Distance

public static Float Distance( IFloat x, IFloat y)

   原点から指定した座標までのユークリッド距離を求めます。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:計算結果を返します。

IFloat x :求めるX座標
IFloat y :求めるY座標

先頭へ


Math::NormalizeAngle

public static Float NormalizeAngle( IFloat rad_angle)

   rad_angle をラジアン単位の角度として、0〜2PIの範囲に正規化します。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:処理結果を返します。

IFloat rad_angle :正規化する角度

先頭へ


Math::DiffAngle

public static Float DiffAngle( IFloat rad_origin, IFloat rad_value)

   rad_origin を基準とした時の rad_value の角度をラジアン単位の角度として求めます。
   このメソッドは-PI〜PIの範囲で角度差を返します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値: (rad_value-rad_origin) を-PI〜PIの範囲で正規化して返します。

IFloat rad_origin :基準となる角度
IFloat rad_value :計算する角度

先頭へ


Math::Angle2XDir

public static Integer Angle2XDir( IFloat rad_angle)

   rad_angle をラジアン単位の角度として、X軸の進行方向を-1、0、1のいずれかで返します。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度に対応するX軸の進行方向を-1、0、1のいずれかで返します。

IFloat rad_angle :進行方向を求める角度

先頭へ


Math::Angle2YDir

public static Integer Angle2YDir( IFloat rad_angle)

   rad_angle をラジアン単位の角度として、Y軸の進行方向を-1、0、1のいずれかで返します。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度に対応するY軸の進行方向を-1、0、1のいずれかで返します。

IFloat rad_angle :進行方向を求める角度

先頭へ


Math::AdjustSin

public static Float AdjustSin( IFloat rad_angle)

   rad_angle のサインを求めて返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度の補正付きサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::AdjustCos

public static Float AdjustCos( IFloat rad_angle)

   rad_angle のコサインを求めて返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度の補正付きコサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::AdjustTan

public static Float AdjustTan( IFloat rad_angle)

   rad_angle のタンジェントを求めて返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度の補正付きタンジェントを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::AdjustSinR

public static Float AdjustSinR( IFloat rad_angle, IFloat r)

   rad_angle のサインを求めて、 r を乗算して返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度の補正付きサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)
IFloat r :半径

先頭へ


Math::AdjustCosR

public static Float AdjustCosR( IFloat rad_angle, IFloat r)

   rad_angle のコサインを求めて、 r を乗算して返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度の補正付きコサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)
IFloat r :半径

先頭へ


Math::SinReverse

public static Float SinReverse( IFloat rad_angle)

   rad_angle の反転サインを求めて返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度の反転サインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::CosReverse

public static Float CosReverse( IFloat rad_angle)

   rad_angle の反転コサインを求めて返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度の反転コサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::SinReverseR

public static Float SinReverseR( IFloat rad_angle, IFloat r)

   rad_angle の反転サインを求めて、 r を乗算して返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度の反転サインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)
IFloat r :半径

先頭へ


Math::CosReverseR

public static Float CosReverseR( IFloat rad_angle, IFloat r)

   rad_angle の反転コサインを求めて、 r を乗算して返します。
   rad_angle はラジアン単位です。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度の反転コサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)
IFloat r :半径

先頭へ


Math::AdjustSinReverse

public static Float AdjustSinReverse( IFloat rad_angle)

   rad_angle の反転サインを求めて返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度の補正付き反転サインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::AdjustCosReverse

public static Float AdjustCosReverse( IFloat rad_angle)

   rad_angle の反転コサインを求めて返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に rad_angle から INativeFloat による取得を試みます。
   これに失敗した場合、 rad_angle.Get を呼び出します。

戻り値:指定した角度の補正付き反転コサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)

先頭へ


Math::AdjustSinReverseR

public static Float AdjustSinReverseR( IFloat rad_angle, IFloat r)

   rad_angle の反転サインを求めて r を乗算して返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度の補正付き反転サインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)
IFloat r :半径

先頭へ


Math::AdjustCosReverseR

public static Float AdjustCosReverseR( IFloat rad_angle, IFloat r)

   rad_angle の反転コサインを求めて r を乗算して返します。
   rad_angle はラジアン単位です。
   このメソッドは rad_angle が45度単位の角度に近い場合、近傍の45度単位の角度丁度に補正します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度の補正付き反転コサインを返します。

IFloat rad_angle :計算する角度(ラジアン単位)
IFloat r :半径

先頭へ


Math::QuadraticEquation

public static Integer QuadraticEquation( IFloat a, IFloat b, IFloat c,
             editable INativeFloat? x1,editable INativeFloat? x2=NULL)


   二次方程式の解の公式を使って二次方程式を解きます。
   このメソッドは解が2個ある場合は解1<解2になるように返します。
   解が0〜1個の場合、対応する解がない出力値に意味はありません。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:検出され、出力された解の数を0〜2で返します。

IFloat a :x二乗係数。
IFloat b :x係数。
IFloat c :定数項。
editable INativeFloat? x1 :[出力]解1を出力するオブジェクト。
      空参照を指定した場合は無視します。
editable INativeFloat? x2=NULL :[出力]解2を出力するオブジェクト。
      空参照を指定した場合は無視します。

先頭へ


Math::QuadraticEquationPlusOnly

public static Integer QuadraticEquationPlusOnly( IFloat a, IFloat b, IFloat c,
             editable INativeFloat? x1,editable INativeFloat? x2=NULL)


   二次方程式の解の公式を使って二次方程式を解き、0以上の解だけを返します。
   このメソッドは条件を満たす解が2個ある場合は解1<解2になるように返します。
   条件を満たす解が0〜1個の場合、対応する解がない出力値に意味はありません。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:検出され、出力された解の数を0〜2で返します。

IFloat a :x二乗係数。
IFloat b :x係数。
IFloat c :定数項。
editable INativeFloat? x1 :[出力]解1を出力するオブジェクト。
      空参照を指定した場合は無視します。
editable INativeFloat? x2=NULL :[出力]解2を出力するオブジェクト。
      空参照を指定した場合は無視します。

先頭へ


Math::Collide1D

public static void Collide1D( IFloat m1,editable INativeFloat v1,
             IFloat m2,editable INativeFloat v2, IFloat e)


   1次元の衝突計算を行い、それぞれの速度を更新します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

IFloat m1 :オブジェクト1の質量
editable INativeFloat v1 :[入出力]オブジェクト1の速度
IFloat m2 :オブジェクト2の質量
editable INativeFloat v2 :[入出力]オブジェクト2の速度
IFloat e :反発係数

先頭へ


Math::Collide2D

public static void Collide2D( IFloat m1,editable INativeFloat a1,editable INativeFloat s1,
             IFloat m2,editable INativeFloat a2,editable INativeFloat s2, IFloat e, IFloat hit_a)


   2次元の衝突計算を行い、それぞれの角度と速度を更新します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

IFloat m1 :オブジェクト1の質量
editable INativeFloat a1 :[入出力]オブジェクト1の角度(ラジアン単位)
editable INativeFloat s1 :[入出力]オブジェクト1の速度
IFloat m2 :オブジェクト2の質量
editable INativeFloat a2 :[入出力]オブジェクト2の角度(ラジアン単位)
editable INativeFloat s2 :[入出力]オブジェクト2の速度
IFloat e :反発係数
IFloat hit_a :オブジェクト2からみたオブジェクト1との衝突角度(ラジアン単位)

先頭へ


Math::AngleInRange

public static Bool AngleInRange( IFloat rad_angle, IFloat rad_min, IFloat rad_max)

   指定した角度が指定範囲内にあるか判定します。
   このメソッドは角度をラジアン単位として扱い、周回している場合も考慮して処理します。
   
   この判定は範囲の両端ともに真を返しますが、
   浮動小数点演算誤差の影響を受けるため同値判定の正確性を期待してはいけません。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した角度が指定範囲内にある場合、真を返します。

IFloat rad_angle :判定する角度
IFloat rad_min :真にする角度の最低値
IFloat rad_max :真にする角度の最大値

先頭へ


Math::PointInCircle

public static Bool PointInCircle( IFloat ax, IFloat ay, IFloat bx, IFloat by, IFloat br)

   指定した点Aが指定した円Bの領域内にあるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した点Aが指定した円Bの領域内にある場合、真を返します。

IFloat ax :点AのX座標
IFloat ay :点AのY座標
IFloat bx :円Bの中心X座標
IFloat by :円Bの中心Y座標
IFloat br :円Bの半径

先頭へ


Math::PointInRect

public static Bool PointInRect( IFloat ax, IFloat ay,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2)


   指定した点Aが指定した矩形Bの領域内にあるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した点Aが指定した矩形Bの領域内にある場合、真を返します。

IFloat ax :点AのX座標
IFloat ay :点AのY座標
IFloat bx1 :矩形BのX座標1
IFloat by1 :矩形BのY座標1
IFloat bx2 :矩形BのX座標2
IFloat by2 :矩形BのY座標2

先頭へ


Math::LineInCircle

public static Bool LineInCircle( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx, IFloat by, IFloat br)


   指定した線分Aが指定した円Bの中にあるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aが指定した円Bの中にある場合、真を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx :円Bの中心X座標
IFloat by :円Bの中心Y座標
IFloat br :円Bの半径

先頭へ


Math::LineInRect

public static Bool LineInRect( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2)


   指定した線分Aが指定した矩形Bの中にあるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aが指定した矩形Bの中にある場合、真を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx1 :矩形BのX座標1
IFloat by1 :矩形BのY座標1
IFloat bx2 :矩形BのX座標2
IFloat by2 :矩形BのY座標2

先頭へ


Math::CircleInCircle

public static Bool CircleInCircle( IFloat ax, IFloat ay, IFloat ar,
             IFloat bx, IFloat by, IFloat br)


   指定した円Aが指定した円Bの中にあるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した円Aが指定した円Bの中にある場合、真を返します。

IFloat ax :円Aの中心X座標
IFloat ay :円Aの中心Y座標
IFloat ar :円Aの半径
IFloat bx :円Bの中心X座標
IFloat by :円Bの中心Y座標
IFloat br :円Bの半径

先頭へ


Math::CircleInRect

public static Bool CircleInRect( IFloat ax, IFloat ay, IFloat ar,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2)


   指定した円Aが指定した矩形Bの中にあるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した円Aが指定した矩形Bの中にある場合、真を返します。

IFloat ax :円Aの中心X座標
IFloat ay :円Aの中心Y座標
IFloat ar :円Aの半径
IFloat bx1 :矩形BのX座標1
IFloat by1 :矩形BのY座標1
IFloat bx2 :矩形BのX座標2
IFloat by2 :矩形BのY座標2

先頭へ


Math::RectInCircle

public static Bool RectInCircle( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx, IFloat by, IFloat br)


   指定した矩形Aが指定した円Bの中にあるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した矩形Aが指定した円Bの中にある場合、真を返します。

IFloat ax1 :矩形AのX座標1
IFloat ay1 :矩形AのY座標1
IFloat ax2 :矩形AのX座標2
IFloat ay2 :矩形AのY座標2
IFloat bx :円Bの中心X座標
IFloat by :円Bの中心Y座標
IFloat br :円Bの半径

先頭へ


Math::RectInRect

public static Bool RectInRect( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2)


   指定した矩形Aが指定した矩形Bの中にあるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した矩形Aが指定した矩形Bの中にある場合、真を返します。

IFloat ax1 :矩形AのX座標1
IFloat ay1 :矩形AのY座標1
IFloat ax2 :矩形AのX座標2
IFloat ay2 :矩形AのY座標2
IFloat bx1 :矩形BのX座標1
IFloat by1 :矩形BのY座標1
IFloat bx2 :矩形BのX座標2
IFloat by2 :矩形BのY座標2

先頭へ


Math::LPNearest

public static Bool LPNearest( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx, IFloat by,
             editable INativeFloat? ox,editable INativeFloat? oy)


   指定した線分上の、指定した点と最も近い座標を求めます。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:線分を直線に拡張した場合でも最接近座標が同じ場合は真を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx :最接近座標を求める点BのX座標
IFloat by :最接近座標を求める点BのY座標
editable INativeFloat? ox :[出力]線分上の点Bと最も近い点のX座標。
      空参照を指定した場合、無視します。
editable INativeFloat? oy :[出力]線分上の点Bと最も近い点のY座標。
      空参照を指定した場合、無視します。

先頭へ


Math::LLIntersection

public static Integer LLIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2,
             editable INativeFloat? ox,editable INativeFloat? oy)


   指定した2本の線分に交点があるか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した2本の線分に交点がある場合、1を返します。
      2本の線分に交点がなく、各線分を定義する座標を通る2本の直線に交点がある場合、0を返します。
      2本の線分が平行である場合、-1を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx1 :線分BのX座標1
IFloat by1 :線分BのY座標1
IFloat bx2 :線分BのX座標2
IFloat by2 :線分BのY座標2
editable INativeFloat? ox :[出力]各線分を定義する座標を通る2本の直線の交点のX座標。
      このメソッドの戻り値が-1であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oy :[出力]各線分を定義する座標を通る2本の直線の交点のY座標。
      このメソッドの戻り値が-1であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::LvCOverlap

public static Bool LvCOverlap( IFloat ax, IFloat ay, IFloat aa, IFloat ad,
             IFloat bx, IFloat by, IFloat br)


   指定した線分Aと円Bに重複する領域があるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aと円Bに重複する領域がある場合、真を返します。

IFloat ax :線分Aの起点X座標
IFloat ay :線分Aの起点Y座標
IFloat aa :線分Aの角度(ラジアン単位)
IFloat ad :線分Aの終点までの距離
IFloat bx :円Bの中心X座標
IFloat by :円Bの中心Y座標
IFloat br :円Bの半径

先頭へ


Math::LCOverlap

public static Bool LCOverlap( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx, IFloat by, IFloat br)


   指定した線分Aと円Bに重複する領域があるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aと円Bに重複する領域がある場合、真を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx :円Bの中心X座標
IFloat by :円Bの中心Y座標
IFloat br :円Bの半径

先頭へ


Math::LROverlap

public static Bool LROverlap( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2)


   指定した線分Aと矩形Bに重複する領域があるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aと矩形Bに重複する領域がある場合、真を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx1 :矩形BのX座標1
IFloat by1 :矩形BのY座標1
IFloat bx2 :矩形BのX座標2
IFloat by2 :矩形BのY座標2

先頭へ


Math::CCOverlap

public static Bool CCOverlap( IFloat ax, IFloat ay, IFloat ar,
             IFloat bx, IFloat by, IFloat br)


   指定した二つの円に重複する領域があるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した二つの円に重複する領域がある場合、真を返します。

IFloat ax :円Aの中心X座標
IFloat ay :円Aの中心Y座標
IFloat ar :円Aの半径
IFloat bx :円Bの中心X座標
IFloat by :円Bの中心Y座標
IFloat br :円Bの半径

先頭へ


Math::CROverlap

public static Bool CROverlap( IFloat ax, IFloat ay, IFloat ar,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2)


   指定した円Aと矩形Bに重複する領域があるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した円Aと矩形Bに重複する領域がある場合、真を返します。

IFloat ax :円Aの中心X座標
IFloat ay :円Aの中心Y座標
IFloat ar :円Aの半径
IFloat bx1 :矩形BのX座標1
IFloat by1 :矩形BのY座標1
IFloat bx2 :矩形BのX座標2
IFloat by2 :矩形BのY座標2

先頭へ


Math::RROverlap

public static Bool RROverlap( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2)


   指定した二つの矩形に重複する領域があるか判定します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した二つの矩形に重複する領域がある場合、真を返します。

IFloat ax1 :矩形AのX座標1
IFloat ay1 :矩形AのY座標1
IFloat ax2 :矩形AのX座標2
IFloat ay2 :矩形AのY座標2
IFloat bx1 :矩形BのX座標1
IFloat by1 :矩形BのY座標1
IFloat bx2 :矩形BのX座標2
IFloat by2 :矩形BのY座標2

先頭へ


Math::AAOverlap

public static Bool AAOverlap( IFloat angle1, IFloat range1, IFloat angle2, IFloat range2)

   指定した二つの角度範囲に重複があるか判定します。
   このメソッドでは角度範囲を中心とそこからの差の範囲で指定します。
   range は中心から正負両方に伸びることに注意してください。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した二つの角度範囲に重複がある場合、真を返します。

IFloat angle1 :角度範囲1の中心(ラジアン単位)
IFloat range1 :角度範囲1の範囲(ラジアン単位)
IFloat angle2 :角度範囲2の中心(ラジアン単位)
IFloat range2 :角度範囲2の範囲(ラジアン単位)

先頭へ


Math::CalcAngleRangeInSightRC

public static Bool CalcAngleRangeInSightRC( IFloat x1, IFloat y1,
             IFloat x2, IFloat y2,
             editable INativeFloat? out_angle,editable INativeFloat? out_range,
             INativeFloat? origin_x=NULL, INativeFloat? origin_y=NULL)


   原点から (x1,y1,x2,y2) で示される矩形が見える角度範囲を求めます。
   指定した矩形が原点を含んでいる場合、360度全てを角度範囲として出力します。
   out_range は中心から正負両方に伸びることに注意してください。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:角度範囲が取得できた場合、真を返します。
      指定した矩形が原点を範囲に含む場合、偽を返します。

IFloat x1 :矩形のX座標1
IFloat y1 :矩形のY座標1
IFloat x2 :矩形のX座標2
IFloat y2 :矩形のY座標2
editable INativeFloat? out_angle :[出力]矩形が見える中心角度(ラジアン単位)。
      空参照を指定した場合、無視します。
editable INativeFloat? out_range :[出力]矩形が見える中心からの範囲(ラジアン単位)。
      空参照を指定した場合、無視します。
INativeFloat? origin_x=NULL :原点とするX座標。
      空参照を指定した場合、0.0を指定したものとして扱います。
INativeFloat? origin_y=NULL :原点とするY座標。
      空参照を指定した場合、0.0を指定したものとして扱います。

先頭へ


Math::CalcAngleRangeInSightTR

public static Bool CalcAngleRangeInSightTR( IFloat x1, IFloat y1,
             IFloat x2, IFloat y2, IFloat x3, IFloat y3,
             editable INativeFloat? out_angle,editable INativeFloat? out_range,
             INativeFloat? origin_x=NULL, INativeFloat? origin_y=NULL)


   原点から (x1,y1)→(x2,y2)→(x3,y3)→(x1,y1) で示される三角形が見える角度範囲を求めます。
   指定した三角形が原点を含んでいる場合、360度全てを角度範囲として出力します。
   out_range は中心から正負両方に伸びることに注意してください。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:角度範囲が取得できた場合、真を返します。
      指定した三角形が原点を範囲に含む場合、偽を返します。

IFloat x1 :三角形のX座標1
IFloat y1 :三角形のY座標1
IFloat x2 :三角形のX座標2
IFloat y2 :三角形のY座標2
IFloat x3 :三角形のX座標3
IFloat y3 :三角形のY座標3
editable INativeFloat? out_angle :[出力]三角形が見える中心角度(ラジアン単位)。
      空参照を指定した場合、無視します。
editable INativeFloat? out_range :[出力]三角形が見える中心からの範囲(ラジアン単位)。
      空参照を指定した場合、無視します。
INativeFloat? origin_x=NULL :原点とするX座標。
      空参照を指定した場合、0.0を指定したものとして扱います。
INativeFloat? origin_y=NULL :原点とするY座標。
      空参照を指定した場合、0.0を指定したものとして扱います。

先頭へ


Math::CalcAngleRangeInSightQR

public static Bool CalcAngleRangeInSightQR( IFloat x1, IFloat y1,
             IFloat x2, IFloat y2, IFloat x3, IFloat y3, IFloat x4, IFloat y4,
             editable INativeFloat? out_angle,editable INativeFloat? out_range,
             INativeFloat? origin_x=NULL, INativeFloat? origin_y=NULL)


   原点から (x1,y1)→(x2,y2)→(x3,y3)→(x4,y4)→(x1,y1) で示される四角形が見える角度範囲を求めます。
   指定した四角形が原点を含んでいる場合、360度全てを角度範囲として出力します。
   out_range は中心から正負両方に伸びることに注意してください。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:角度範囲が取得できた場合、真を返します。
      指定した四角形が原点を範囲に含む場合、偽を返します。

IFloat x1 :四角形のX座標1
IFloat y1 :四角形のY座標1
IFloat x2 :四角形のX座標2
IFloat y2 :四角形のY座標2
IFloat x3 :四角形のX座標3
IFloat y3 :四角形のY座標3
IFloat x4 :四角形のX座標4
IFloat y4 :四角形のY座標4
editable INativeFloat? out_angle :[出力]四角形が見える中心角度(ラジアン単位)。
      空参照を指定した場合、無視します。
editable INativeFloat? out_range :[出力]四角形が見える中心からの範囲(ラジアン単位)。
      空参照を指定した場合、無視します。
INativeFloat? origin_x=NULL :原点とするX座標。
      空参照を指定した場合、0.0を指定したものとして扱います。
INativeFloat? origin_y=NULL :原点とするY座標。
      空参照を指定した場合、0.0を指定したものとして扱います。

先頭へ


Math::CalcAngleRangeInSightCR

public static Bool CalcAngleRangeInSightCR( IFloat x, IFloat y, IFloat r,
             editable INativeFloat? out_angle,editable INativeFloat? out_range,
             INativeFloat? origin_x=NULL, INativeFloat? origin_y=NULL)


   原点から (x,y,r) で示される円が見える角度範囲を求めます。
   指定した円が原点を含んでいる場合、360度全てを角度範囲として出力します。
   out_range は中心から正負両方に伸びることに注意してください。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:角度範囲が取得できた場合、真を返します。
      指定した円が原点を範囲に含む場合、偽を返します。

IFloat x :円の中心X座標
IFloat y :円の中心Y座標
IFloat r :円の半径
editable INativeFloat? out_angle :[出力]円が見える中心角度(ラジアン単位)。
      空参照を指定した場合、無視します。
editable INativeFloat? out_range :[出力]円が見える中心からの範囲(ラジアン単位)。
      空参照を指定した場合、無視します。
INativeFloat? origin_x=NULL :原点とするX座標。
      空参照を指定した場合、0.0を指定したものとして扱います。
INativeFloat? origin_y=NULL :原点とするY座標。
      空参照を指定した場合、0.0を指定したものとして扱います。

先頭へ


Math::CalcLineGrid

public static Bool CalcLineGrid( IInteger start_x, IInteger start_y, IInteger end_x, IInteger end_y,
            editable PIntArray out_xlist,editable PIntArray out_ylist)


   指定した線分が通過する、1単位で区切った方眼状のグリッドの座標リストを求めます。
   探索可能な範囲は一辺32768グリッドまでです。
   このメソッドは起点から終点へ向かってリストを作成します。

   このメソッドは最初に各 IInteger の引数から INativeInteger による取得を試みます。
   これに失敗した場合、 IInteger@@Get を呼び出します。

戻り値:リストを取得できた場合、真を返します。

IInteger start_x :起点X座標
IInteger start_y :起点Y座標
IInteger end_x :終点X座標
IInteger end_y :終点Y座標
editable PIntArray out_xlist :[出力]通過するグリッドのX座標リストを出力するオブジェクト。
editable PIntArray out_ylist :[出力]通過するグリッドのY座標リストを出力するオブジェクト。

先頭へ


Math::CalcCircumferenceGrid

public static Bool CalcCircumferenceGrid( IFloat origin_x, IFloat origin_y, IFloat r,
             IFloat start_angle, IFloat end_angle,
             editable PIntArray out_xlist,editable PIntArray out_ylist)


   指定した円弧が通過する、1単位で区切った方眼状のグリッドの座標リストを求めます。
   探索可能な範囲は円の半径が2〜100000の範囲です。
   このメソッドは起点から終点へ向かってリストを作成します。
   このメソッドは同じ座標を複数回出力しません。
   指定した円弧が同じ座標のグリッドを複数回通過する場合、最初に通過するタイミングのみ出力されます。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:リストを取得できた場合、真を返します。

IFloat origin_x :円の中心X座標
IFloat origin_y :円の中心Y座標
IFloat r :円の半径
IFloat start_angle :円弧の起点角度(ラジアン単位)
IFloat end_angle :円弧の終点角度(ラジアン単位)
editable PIntArray out_xlist :[出力]通過するグリッドのX座標リストを出力するオブジェクト。
editable PIntArray out_ylist :[出力]通過するグリッドのY座標リストを出力するオブジェクト。

先頭へ


Math::PPaOrthogonal

public static Bool PPaOrthogonal( IFloat ax, IFloat ay,
             IFloat bx, IFloat by, IFloat ba,
             editable INativeFloat? ox,editable INativeFloat? oy)


   指定した点Aと指定した角度で移動する点Bが最接近する座標を求めます。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:最接近座標が点Bの進行方向にある(点Bが点Aへ接近する方向で移動している)場合、真を返します。

IFloat ax :点AのX座標
IFloat ay :点AのY座標
IFloat bx :点Bの起点X座標
IFloat by :点Bの起点Y座標
IFloat ba :点Bの進行角度(ラジアン単位)
editable INativeFloat? ox :[出力]二点が最も接近するX座標。
      空参照を指定した場合、無視します。
editable INativeFloat? oy :[出力]二点が最も接近するY座標。
      空参照を指定した場合、無視します。

先頭へ


Math::PLaIntersection

public static Integer PLaIntersection( IFloat ax, IFloat ay,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2, IFloat ba,
             editable INativeFloat? od)


   指定した点Aと指定した角度で移動する線分Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した点Aと指定した角度で移動する線分Bが接触する場合、1を返します。
      線分Bが接触せず、指定した点Aと線分Bを定義する座標を通る、指定した角度で移動する直線が接触する場合、0を返します。
      それ以外の場合、-1を返します。

IFloat ax :点AのX座標
IFloat ay :点AのY座標
IFloat bx1 :線分Bの起点X座標1
IFloat by1 :線分Bの起点Y座標1
IFloat bx2 :線分Bの起点X座標2
IFloat by2 :線分Bの起点Y座標2
IFloat ba :線分Bの進行角度(ラジアン単位)
editable INativeFloat? od :[出力]点Aと線分Bが接触するまでの線分Bの移動距離。
      このメソッドの戻り値が-1であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::PCaIntersection

public static Bool PCaIntersection( IFloat ax, IFloat ay,
             IFloat bx, IFloat by, IFloat br, IFloat ba,
             editable INativeFloat? od)


   指定した点Aと指定した角度で移動する円Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した点Aと指定した角度で移動する円Bが接触する場合、真を返します。

IFloat ax :点AのX座標
IFloat ay :点AのY座標
IFloat bx :円Bの起点中心X座標
IFloat by :円Bの起点中心Y座標
IFloat br :円Bの半径
IFloat ba :円Bの進行角度(ラジアン単位)
editable INativeFloat? od :[出力]点Aと円Bが接触するまでの円Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::PRaIntersection

public static Bool PRaIntersection( IFloat ax, IFloat ay,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2, IFloat ba,
             editable INativeFloat? od)


   指定した点Aと指定した角度で移動する矩形Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した点Aと指定した角度で移動する矩形Bが接触する場合、真を返します。

IFloat ax :点AのX座標
IFloat ay :点AのY座標
IFloat bx1 :矩形Bの起点X座標1
IFloat by1 :矩形Bの起点Y座標1
IFloat bx2 :矩形Bの起点X座標2
IFloat by2 :矩形Bの起点Y座標2
IFloat ba :矩形Bの進行角度(ラジアン単位)
editable INativeFloat? od :[出力]点Aと矩形Bが接触するまでの矩形Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::LPaIntersection

public static Integer LPaIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx, IFloat by, IFloat ba,
             editable INativeFloat? obx,editable INativeFloat? oby)


   指定した線分Aと指定した角度で移動する点Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aと指定した角度で移動する点Bが接触する場合、1を返します。
      線分Aが接触せず、指定した線分Aを定義する座標を通る直線と指定した角度で移動する点Bが接触する場合、0を返します。
      それ以外の場合、-1を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx :点Bの起点X座標
IFloat by :点Bの起点Y座標
IFloat ba :点Bの進行角度(ラジアン単位)
editable INativeFloat? obx :[出力]線分Aを定義する座標を通る直線と移動する点Bが接触するX座標。
      このメソッドの戻り値が-1であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]線分Aを定義する座標を通る直線と移動する点Bが接触するY座標。
      このメソッドの戻り値が-1であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::LLaIntersection

public static Bool LLaIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2, IFloat ba,
             editable INativeFloat? obx,editable INativeFloat? oby,editable INativeFloat? obd)


   指定した線分Aと指定した角度で移動する線分Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aと指定した角度で移動する線分Bが接触する場合、真を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx1 :線分Bの起点X座標1
IFloat by1 :線分Bの起点Y座標1
IFloat bx2 :線分Bの起点X座標2
IFloat by2 :線分Bの起点Y座標2
IFloat ba :線分Bの進行角度(ラジアン単位)
editable INativeFloat? obx :[出力]線分Aと移動する線分Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]線分Aと移動する線分Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]線分Aと線分Bが接触するまでの線分Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::LCaIntersection

public static Bool LCaIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx, IFloat by, IFloat br, IFloat ba,
             editable INativeFloat? oax,editable INativeFloat? oay,
             editable INativeFloat? obx,editable INativeFloat? oby,
             editable INativeFloat? oba,editable INativeFloat? obd)


   指定した線分Aと指定した角度で移動する円Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aと指定した角度で移動する円Bが接触する場合、真を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx :円Bの起点中心X座標
IFloat by :円Bの起点中心Y座標
IFloat br :円Bの半径
IFloat ba :円Bの進行角度(ラジアン単位)
editable INativeFloat? oax :[出力]線分Aと移動する円Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oay :[出力]線分Aと移動する円Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obx :[出力]線分Aと移動する円Bが接触する時の円Bの中心X座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]線分Aと移動する円Bが接触する時の円Bの中心Y座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oba :[出力]線分Aと移動する円Bが接触する時の円Bからみた接触角度(ラジアン単位)。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]線分Aと円Bが接触するまでの円Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::LRaIntersection

public static Bool LRaIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2, IFloat ba,
             editable INativeFloat? obx,editable INativeFloat? oby,editable INativeFloat? obd)


   指定した線分Aと指定した角度で移動する矩形Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した線分Aと指定した角度で移動する矩形Bが接触する場合、真を返します。

IFloat ax1 :線分AのX座標1
IFloat ay1 :線分AのY座標1
IFloat ax2 :線分AのX座標2
IFloat ay2 :線分AのY座標2
IFloat bx1 :矩形Bの起点X座標1
IFloat by1 :矩形Bの起点Y座標1
IFloat bx2 :矩形Bの起点X座標2
IFloat by2 :矩形Bの起点Y座標2
IFloat ba :矩形Bの進行角度(ラジアン単位)
editable INativeFloat? obx :[出力]線分Aと移動する矩形Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]線分Aと移動する矩形Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]線分Aと矩形Bが接触するまでの矩形Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::CPaIntersection

public static Bool CPaIntersection( IFloat ax, IFloat ay, IFloat ar,
             IFloat bx, IFloat by, IFloat ba,
             editable INativeFloat? obx,editable INativeFloat? oby,editable INativeFloat? obd)


   指定した円Aと指定した角度で移動する点Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した円Aと指定した角度で移動する点Bが接触する場合、真を返します。

IFloat ax :円Aの中心X座標
IFloat ay :円Aの中心Y座標
IFloat ar :円Aの半径
IFloat bx :点Bの起点X座標
IFloat by :点Bの起点Y座標
IFloat ba :点Bの進行角度(ラジアン単位)
editable INativeFloat? obx :[出力]円Aと移動する点Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]円Aと移動する点Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]円Aと点Bが接触するまでの点Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::CLaIntersection

public static Bool CLaIntersection( IFloat ax, IFloat ay, IFloat ar,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2, IFloat ba,
             editable INativeFloat? obx,editable INativeFloat? oby,
             editable INativeFloat? oba,editable INativeFloat? obd)


   指定した円Aと指定した角度で移動する線分Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した円Aと指定した角度で移動する線分Bが接触する場合、真を返します。

IFloat ax :円Aの中心X座標
IFloat ay :円Aの中心Y座標
IFloat ar :円Aの半径
IFloat bx1 :線分Bの起点X座標1
IFloat by1 :線分Bの起点Y座標1
IFloat bx2 :線分Bの起点X座標2
IFloat by2 :線分Bの起点Y座標2
IFloat ba :線分Bの進行角度(ラジアン単位)
editable INativeFloat? obx :[出力]円Aと移動する線分Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]円Aと移動する線分Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oba :[出力]円Aと移動する線分Bが接触する時の線分Bからみた接触角度(ラジアン単位)。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]円Aと線分Bが接触するまでの線分Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::CCaIntersection

public static Bool CCaIntersection( IFloat ax, IFloat ay, IFloat ar,
             IFloat bx, IFloat by, IFloat br, IFloat ba,
             editable INativeFloat? oax,editable INativeFloat? oay,
             editable INativeFloat? obx,editable INativeFloat? oby,
             editable INativeFloat? oba,editable INativeFloat? obd)


   指定した円Aと指定した角度で移動する円Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した円Aと指定した角度で移動する円Bが接触する場合、真を返します。

IFloat ax :円Aの中心X座標
IFloat ay :円Aの中心Y座標
IFloat ar :円Aの半径
IFloat bx :円Bの起点中心X座標
IFloat by :円Bの起点中心Y座標
IFloat br :円Bの半径
IFloat ba :円Bの進行角度(ラジアン単位)
editable INativeFloat? oax :[出力]円Aと移動する円Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oay :[出力]円Aと移動する円Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obx :[出力]円Aと移動する円Bが接触する時の円Bの中心X座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]円Aと移動する円Bが接触する時の円Bの中心Y座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oba :[出力]円Aと移動する円Bが接触する時の円Bからみた接触角度(ラジアン単位)。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]円Aと円Bが接触するまでの円Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::CRaIntersection

public static Bool CRaIntersection( IFloat ax, IFloat ay, IFloat ar,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2, IFloat ba,
             editable INativeFloat? obx,editable INativeFloat? oby,
             editable INativeFloat? oba,editable INativeFloat? obd)


   指定した円Aと指定した角度で移動する矩形Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した円Aと指定した角度で移動する矩形Bが接触する場合、真を返します。

IFloat ax :円Aの中心X座標
IFloat ay :円Aの中心Y座標
IFloat ar :円Aの半径
IFloat bx1 :矩形Bの起点X座標1
IFloat by1 :矩形Bの起点Y座標1
IFloat bx2 :矩形Bの起点X座標2
IFloat by2 :矩形Bの起点Y座標2
IFloat ba :矩形Bの進行角度(ラジアン単位)
editable INativeFloat? obx :[出力]円Aと移動する矩形Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]円Aと移動する矩形Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oba :[出力]円Aと移動する矩形Bが接触する時の矩形Bからみた接触角度(ラジアン単位)。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]円Aと矩形Bが接触するまでの矩形Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::RPaIntersection

public static Bool RPaIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx, IFloat by, IFloat ba,
             editable INativeFloat? obx,editable INativeFloat? oby,editable INativeFloat? obd)


   指定した矩形Aと指定した角度で移動する点Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した矩形Aと指定した角度で移動する点Bが接触する場合、真を返します。

IFloat ax1 :矩形AのX座標1
IFloat ay1 :矩形AのY座標1
IFloat ax2 :矩形AのX座標2
IFloat ay2 :矩形AのY座標2
IFloat bx :点Bの起点X座標
IFloat by :点Bの起点Y座標
IFloat ba :点Bの進行角度(ラジアン単位)
editable INativeFloat? obx :[出力]矩形Aと移動する点Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]矩形Aと移動する点Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]矩形Aと点Bが接触するまでの点Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::RLaIntersection

public static Bool RLaIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2, IFloat ba,
             editable INativeFloat? obx,editable INativeFloat? oby,editable INativeFloat? obd)


   指定した矩形Aと指定した角度で移動する線分Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した矩形Aと指定した角度で移動する線分Bが接触する場合、真を返します。

IFloat ax1 :矩形AのX座標1
IFloat ay1 :矩形AのY座標1
IFloat ax2 :矩形AのX座標2
IFloat ay2 :矩形AのY座標2
IFloat bx1 :線分Bの起点X座標1
IFloat by1 :線分Bの起点Y座標1
IFloat bx2 :線分Bの起点X座標2
IFloat by2 :線分Bの起点Y座標2
IFloat ba :線分Bの進行角度(ラジアン単位)
editable INativeFloat? obx :[出力]矩形Aと移動する線分Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]矩形Aと移動する線分Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]矩形Aと線分Bが接触するまでの線分Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::RCaIntersection

public static Bool RCaIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx, IFloat by, IFloat br, IFloat ba,
             editable INativeFloat? oax,editable INativeFloat? oay,
             editable INativeFloat? obx,editable INativeFloat? oby,
             editable INativeFloat? oba,editable INativeFloat? obd)


   指定した矩形Aと指定した角度で移動する円Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した矩形Aと指定した角度で移動する円Bが接触する場合、真を返します。

IFloat ax1 :矩形AのX座標1
IFloat ay1 :矩形AのY座標1
IFloat ax2 :矩形AのX座標2
IFloat ay2 :矩形AのY座標2
IFloat bx :円Bの起点中心X座標
IFloat by :円Bの起点中心Y座標
IFloat br :円Bの半径
IFloat ba :円Bの進行角度(ラジアン単位)
editable INativeFloat? oax :[出力]矩形Aと移動する円Bが接触するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oay :[出力]矩形Aと移動する円Bが接触するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obx :[出力]矩形Aと移動する円Bが接触する時の円Bの中心X座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oby :[出力]矩形Aと移動する円Bが接触する時の円Bの中心Y座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oba :[出力]矩形Aと移動する円Bが接触する時の円Bからみた接触角度(ラジアン単位)。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]矩形Aと円Bが接触するまでの円Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::RRaIntersection

public static Bool RRaIntersection( IFloat ax1, IFloat ay1, IFloat ax2, IFloat ay2,
             IFloat bx1, IFloat by1, IFloat bx2, IFloat by2, IFloat ba,
             editable INativeFloat? oba,editable INativeFloat? obd)


   指定した矩形Aと指定した角度で移動する矩形Bが接触するか判定します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:指定した矩形Aと指定した角度で移動する矩形Bが接触する場合、真を返します。

IFloat ax1 :矩形AのX座標1
IFloat ay1 :矩形AのY座標1
IFloat ax2 :矩形AのX座標2
IFloat ay2 :矩形AのY座標2
IFloat bx1 :矩形Bの起点X座標1
IFloat by1 :矩形Bの起点Y座標1
IFloat bx2 :矩形Bの起点X座標2
IFloat by2 :矩形Bの起点Y座標2
IFloat ba :矩形Bの進行角度(ラジアン単位)
editable INativeFloat? oba :[出力]矩形Aと移動する矩形Bが接触する時の矩形Bからみた接触角度(ラジアン単位)。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? obd :[出力]矩形Aと矩形Bが接触するまでの矩形Bの移動距離。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::PsPvAim

public static Bool PsPvAim( IFloat ax, IFloat ay, IFloat as,
             IFloat bx, IFloat by, IFloat bs, IFloat ba,
             editable INativeFloat? ox,editable INativeFloat? oy,editable INativeFloat? oa)


   点Aを指定した速度で移動させ、指定したベクトルで移動する点Bと衝突させるための点Aの射出角度を求めます。
   このメソッドは条件を満たす角度が一つではない場合、最も早く衝突する角度を返します。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:衝突可能な角度が存在する場合、真を返します。

IFloat ax :点Aの起点X座標
IFloat ay :点Aの起点Y座標
IFloat as :点Aの射出速度
IFloat bx :点Bの起点X座標
IFloat by :点Bの起点Y座標
IFloat bs :点Bの移動速度
IFloat ba :点Bの進行角度(ラジアン単位)
editable INativeFloat? ox :[出力]二点が衝突するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oy :[出力]二点が衝突するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oa :[出力]二点を衝突させるための点Aの射出角度(ラジアン単位)。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::PaPvAim

public static Bool PaPvAim( IFloat ax, IFloat ay, IFloat aa,
             IFloat bx, IFloat by, IFloat bs, IFloat ba,
             editable INativeFloat? ox,editable INativeFloat? oy,editable INativeFloat? os)


   点Aを指定した角度で移動させ、指定したベクトルで移動する点Bと衝突させるための点Aの射出速度を求めます。
   このメソッドは二点の角度が同じ場合、極端に大きな速度を返却する場合があります。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値:衝突可能な速度が存在する場合、真を返します。

IFloat ax :点Aの起点X座標
IFloat ay :点Aの起点Y座標
IFloat aa :点Aの射出角度(ラジアン単位)
IFloat bx :点Bの起点X座標
IFloat by :点Bの起点Y座標
IFloat bs :点Bの移動速度
IFloat ba :点Bの進行角度(ラジアン単位)
editable INativeFloat? ox :[出力]二点が衝突するX座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? oy :[出力]二点が衝突するY座標。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。
editable INativeFloat? os :[出力]二点を衝突させるための点Aの射出速度。
      このメソッドの戻り値が偽であった場合、出力値に意味はありません。
      空参照を指定した場合、無視します。

先頭へ


Math::PPvtAim

public static void PPvtAim( IFloat ax, IFloat ay,
             IFloat bx, IFloat by, IFloat bs, IFloat ba, IFloat t,
             editable INativeFloat? ox,editable INativeFloat? oy,editable INativeFloat? os,editable INativeFloat? oa)


   点Aを移動させ、指定したベクトルで移動する点Bと指定した時間後に衝突させるための点Aの射出角度と速度を求めます。

   このメソッドは最初に各 IFloat の引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

IFloat ax :点Aの起点X座標
IFloat ay :点Aの起点Y座標
IFloat bx :点Bの起点X座標
IFloat by :点Bの起点Y座標
IFloat bs :点Bの移動速度
IFloat ba :点Bの進行角度(ラジアン単位)
IFloat t :衝突させるまでの時間
editable INativeFloat? ox :[出力]二点が衝突するX座標。
      空参照を指定した場合、無視します。
editable INativeFloat? oy :[出力]二点が衝突するY座標。
      空参照を指定した場合、無視します。
editable INativeFloat? os :[出力]二点を衝突させるための点Aの射出速度。
      空参照を指定した場合、無視します。
editable INativeFloat? oa :[出力]二点を衝突させるための点Aの射出角度(ラジアン単位)。
      空参照を指定した場合、無視します。

先頭へ


Math::Min

public static Integer Min(...)

   指定した全ての引数を INativeInteger で評価し、その最小値を返します。

戻り値:全ての引数を INativeInteger で評価し、その最小値を返します。

可変長引数:最小値を求める引数群。 INativeInteger で扱える型である必要があります。

先頭へ


Math::Max

public static Integer Max(...)

   指定した全ての引数を INativeInteger で評価し、その最大値を返します。

戻り値:全ての引数を INativeInteger で評価し、その最大値を返します。

可変長引数:最大値を求める引数群。 INativeInteger で扱える型である必要があります。

先頭へ


Math::MinF

public static Float MinF(...)

   指定した全ての引数を INativeFloat で評価し、その最小値を返します。

戻り値:全ての引数を INativeFloat で評価し、その最小値を返します。

可変長引数:最小値を求める引数群。 INativeFloat で扱える型である必要があります。

先頭へ


Math::MaxF

public static Float MaxF(...)

   指定した全ての引数を INativeFloat で評価し、その最大値を返します。

戻り値:全ての引数を INativeFloat で評価し、その最大値を返します。

可変長引数:最大値を求める引数群。 INativeFloat で扱える型である必要があります。

先頭へ


Math::Top1Bit

public static Integer Top1Bit( IInteger value)

   value の値で1になる最上位ビットの位置を求めて返します。
   ビット位置は最上位(符号)が63、最下位(1)が0で表されます。

   このメソッドは最初に value から INativeInteger による取得を試みます。
   これに失敗した場合、 value.Get を呼び出します。

戻り値:指定した値の1になる最上位ビットの位置を返します。
   1になるビットが存在しない場合は-1を返します。

IInteger value :求める値

先頭へ


Math::Bottom1Bit

public static Integer Bottom1Bit( IInteger value)

   value の値で1になる最下位ビットの位置を求めて返します。
   ビット位置は最上位(符号)が63、最下位(1)が0で表されます。

   このメソッドは最初に value から INativeInteger による取得を試みます。
   これに失敗した場合、 value.Get を呼び出します。

戻り値:指定した値の1になる最下位ビットの位置を返します。
   1になるビットが存在しない場合は-1を返します。

IInteger value :求める値

先頭へ


Math::Count1Bit

public static Integer Count1Bit( IInteger value)

   value の値で1になるビットの数を求めて返します。

   このメソッドは最初に value から INativeInteger による取得を試みます。
   これに失敗した場合、 value.Get を呼び出します。

戻り値:指定した値の1になるビットの数を返します。

IInteger value :求める値

先頭へ


Math::RateI

public static Integer RateI( IInteger value, IInteger base, IInteger dst)

   base を0、 dst を100とした数値軸に value の値を変換します。
   base を最低値、 dst を最高値とした場合は戻り値は value の比率位置に相当します。

   このメソッドは最初に各引数から INativeInteger による取得を試みます。
   これに失敗した場合、 IInteger@@Get を呼び出します。

戻り値: base を0、 dst を100とした数値軸に value の値を変換した結果を返します。

IInteger value :求める値
IInteger base :0になる値
IInteger dst :100になる値

先頭へ


Math::RateF

public static Float RateF( IFloat value, IFloat base, IFloat dst)

   base を0、 dst を1とした数値軸に value の値を変換します。
   base を最低値、 dst を最高値とした場合は戻り値は value の比率位置に相当します。

   このメソッドは最初に各引数から INativeFloat による取得を試みます。
   これに失敗した場合、 IFloat@@Get を呼び出します。

戻り値: base を0、 dst を1とした数値軸に value の値を変換した結果を返します。

IFloat value :求める値
IFloat base :0になる値
IFloat dst :1になる値

先頭へ


Math::E

readable readonly Float E

   ネイピア数(2.7182818284590452353602874)の定数です。

先頭へ


Math::PI

readable readonly Float PI

   円周率(3.14159265358979323846264)の定数です。

先頭へ


Math::HALFPI

readable readonly Float HALFPI

   円周率/2を示す定数。

先頭へ


Math::PIx2

readable readonly Float PIx2

   円周率*2を示す定数。

先頭へ


Math::INFINITY

readable readonly Float INFINITY

   無限大を示す定数。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2023/05/29