ClassMethod‐Japanese - NAS6mixfoolv/NAS6LIB GitHub Wiki

目次

NAS6LIBリポジトリに戻る
NAS6LIB Wikiに戻る


グローバルシンボル

  • vector.js内
  • var N6L_DEBUG_MODE = false;//if debug N6L_DEBUG_MODE = true;
  • matrix.js 内
  • var SwDefInverseMat = 1;//逆行列計算のデフォルトスイッチ
    //1:TransposedMat() を使用:2:InverseMat00() を使用:3:InverseMat01() を使用:4:DeterminMatInvMat() を使用:Any:Error
  • keyboard.js 内
  • var TManKeyBoard;//キーボードに関連付けられたタイマーマネージャー
  • var KeyBoardID = [];//実名を定義//米国標準キーボード
  • var KeyBoardAliasID = [];//日本語キーボードのエイリアスを定義
  • var UnityAliasID = [];//日本語統合キーボードのエイリアス
  • var KeyB = new N6LKeyBoard(); //N6LKeyBoardエンティティ
  • var dokp;//内部使用
  • var dokd;//内部使用
  • var doku;//内部使用
  • prime.js内
  • var N6LISPRMONELOOPNUM = 1000;//メインループあたりの計算回数
  • var N6LISPRMNUM;//素数判定回数
  • var N6LISPRMMAX;//最大判定回数
  • var N6LISPRMRET = 0;//IsPrimeの戻り値:0以外:素数:-1:素数でない:0:計算中
  • var N6LISPRMTMP = 5;//内部使用
  • var N6LISPRMTMP0 = 5;//内部使用
  • var N6LISPRMTMP1 = 5;//内部使用使用

グローバルユーティリティ関数

目次に戻る

  • function Rand(min, max)

  • 説明:(Math.random() * (max - min) + min)

  • 引数:min,max

  • 戻り値:(Math.random() * (max - min) + min)

  • function RandSqr(min, max)

  • 説明:RandSqr

  • 引数:min,max

  • 戻り値
    var r = Math.random();
    return (r * r * (max - min) + min)

  • function RandSqr2(min, max)

  • 説明:RandSqr

  • パラメータ:min,max

  • 戻り値
    var r1 = Math.random();
    var r2 = Math.random();
    return (r1 * r2 * (max - min) + min)

  • function readCSV(filename,analyzefunc,donefunc)

  • 説明:CSVの読み取り

  • パラメータ:filename,analyzefunc,donefunc

  • 戻り値

  • function analyzeCSV(res)

  • 説明:CSVの解析

  • パラメータ:res:Array

  • 戻り値:Array

    readCSV('filename', 'analyzeCSV', 'donefunc');

  • function N6LIsPrime(id, num)

  • 説明:IsPrime

  • パラメータ:id:TManId:num

  • 戻り値:num:Is Prime:-1:not Prime:0:Calculating

  • function N6LIsPrimeMNRD(id, num)

  • 説明:IsPrime

  • パラメータ:id:TManId:num

  • 戻り値:num:Is Prime:-1:not Prime:0:Calculating

NAS6LIB クラス概要

目次に戻る

型名メンバー

  • N6LXXX.typename = "N6LXXX"
  • 説明:文字列表現によって型を識別します。

N6LTimerMan

目次に戻る

  • N6LTimerMan:構築

    • メンバー
      *N6LTimerMan.interval:インターバルタイマーチェック
      *N6LTimerMan.enable:
      *N6LTimerMan.timer[]:タイマー
  • メンバー(N6LTimerMan.timer[id])
    *N6LTimerMan.timer[id].ID:
    *N6LTimerMan.timer[id].enable:
    *N6LTimerMan.timer[id].starttime:
    *N6LTimerMan.timer[id].alerm:ミリ秒後
    *N6LTimerMan.timer[id].alermfunc:メソッド呼び出し

  • フォーマット
    var tman = new N6LTimerMan();注: タイマーを作成する場合でも、setTimeout() は N6LTimerMan への集中管理方法の 1 つです。

  • N6LTimerMan.add()

  • 説明:タイマーの追加

  • パラメータ:---

  • 戻り値 :---

  • N6LTimerMan.changeinterval(int)

  • 説明:間隔の変更

  • パラメータ:int:msec

  • 戻り値 :---

  • N6LTimerMan.start()

  • 説明:開始

  • パラメータ:---

  • 戻り値 :---

  • N6LTimerMan.stop()

  • 説明:停止

  • パラメータ:---

  • 戻り値 :---

N6LTimerMan.timer[id]

目次に戻る

  • N6LTimerMan.timer[id].start()

  • 説明:start

  • パラメータ:---

  • 戻り値 :---

  • N6LTimerMan.timer[id].stop()

  • 説明:stop

  • パラメータ:---

  • 戻り値 :---

  • N6LTimerMan.timer[id].reset()

  • 説明:reset(開始時刻更新)**

  • パラメータ:---

  • 戻り値 :---

  • N6LTimerMan.timer[id].copy(src)

  • 説明:コピー

  • パラメータ:src:

  • 戻り値 :---

  • N6LTimerMan.timer[id].now()

  • 説明:過去時刻

  • パラメータ:---

  • 戻り値 :---

  • N6LTimerMan.timer[id].setalerm(func(id),alm)

  • 説明:アラート設定

  • パラメータ:func(id):時間になったときに呼び出されるメソッド
    alm:ミリ秒

  • 戻り値 :---
    詳細:
    func(id) に id 以外のデータを渡したい場合は、サンプルごとに func を変更するか、グローバル変数で渡された引数を渡します。

例:

//グローバル位置
var TMan = new N6LTimerMan(); //構築

//メソッド内にタイマーが必要
...{
...
TMan.add(); //タイマーを追加
TMan.timer[0].setalerm(function() { SignalFunc(0); }, 1000); //1秒後にアラームを設定
...
}

//メソッド呼び出し
function SignalFunc(id) {
...
TMan.timer[id].setalerm(function() { SignalFunc(id); }, 1000); //リセット
//再帰関数ではありますが、一連の処理の中で、
//setTimeout() が含まれているため、コールスタックが返されるため、連続ループではスタックオーバーフローが発生しません。
...
}

呼び出し時間は、N6LTimerMan.interval = 25 (デフォルト値) が推奨値よりも長いです。

N6LVector

目次に戻る

  • N6LVector:構築

  • メンバー

  • N6LVector.x[]:Real

  • N6LVector.x[0]:w N6LVector.x[1]:x N6LVector.x[2]:y N6LVector.x[3]:z など...

  • N6LVector.bHomo:if Homogeneous
    var N6LVector = function(rh, bh) { }

  • フォーマット

  • 4次ベクトル

  • var veca = new N6LVector(4);

  • ホモ4次ベクトル

  • var veca = new N6LVector(4, true);

  • 3次ベクトル

  • var veca = new N6LVector(new Array(1, 2, 3));

  • x軸単位ホモ4次ベクトル

  • var veca = new N6LVector(new Array(1, 1, 0, 0), true);

  • var veca = new N6LVector([1, 1, 0, 0], true);

  • var vecb = new N6LVector(veca); //ディープコピー

  • N6LVector.Comp(rh)

  • 説明:比較

  • パラメータ:rh:N6LVector:比較

  • 戻り値:ソースファイルを参照してください

  • N6LVector.Equal(rh)

  • 説明:等しい場合

  • パラメータ:rh:N6LVector:比較

  • 戻り値:true:false:

  • N6LVector.EpsComp(rh, eps, bbb)

  • 説明:比較

  • パラメータ:rh:N6LVector:比較:eps:error:real:bbb:true:同値要素を無視

  • 戻り値:ソースファイルを参照してください

  • N6LVector.EpsEqual(rh, eps)

  • 説明:等しい場合

  • パラメータ:rh:N6LVector:compare this:eps:error:real

  • 戻り値:true:false:

  • N6LVector.Str()

  • 説明:文字列に変換

  • パラメータ:---

  • 戻り値:文字列に変換:string

  • N6LVector.Parse(str)

  • 説明:文字列から変換

  • パラメータ:str:string

  • 戻り値:文字列から変換:N6LVector

  • N6LVector.ToX3DOM(b)

  • 説明: x3dom.fields.SFVec[2/3/4]f

  • パラメータ:b:case 4→3、true:bool

  • 戻り値:x3dom.fields.SFVec[2/3/4]f:x3dom.fields.SFVec[2/3/4]f に変換

  • N6LVector.FromX3DOM(sf)

  • 説明:x3dom.fields.SFVec[2/3/4]f から変換

  • パラメータ:sf:x3dom.fields.SFVec[2/3/4]f

  • 戻り値:x3dom.fields.SFVec[2/3/4]f:N6LVector から変換

  • N6LVector.To3JS(b)

  • 説明: THREE.Vector[2/3/4]

  • パラメータ:b:case 4→3、true:bool

  • 戻り値:THREE.Vector[2/3/4]:THREE.Vector[2/3/4]に変換

  • N6LVector.From3JS(ary)

  • 説明:配列からの変換

  • パラメータ:ary:Array()

  • 戻り値:配列からの変換:N6LVector

  • N6LVector.GetAccessor(it)

  • 説明:"w", "x", "y", "z" でアクセサを取得します

  • パラメータ:it:string

  • 戻り値:accessor:int

  • N6LVector.Get(it)

  • 説明:Get各値を「w」、「x」、「y」、「z」、「length」、および「dimension」で設定し、内部配列への参照を「array」で返します。

  • パラメータ:it:string

  • 戻り値:value:real

  • N6LVector.Set(it, val)

  • 説明:{ "w","x","y", or "z"} の場合、val で各値をvalに設定します。

  • パラメータ:it:string:val:real

  • 戻り値:value:real

  • N6LVector.Create(rh, bh)

  • 説明:一般的な規則に基づいて構築

  • パラメータ:rh:Array:bh:bool

  • 戻り値
    var v = new N6LVector().Create([1,2,3,4], true);
    var ary = v.Get("array");
    var len = v.Get("length");
    var acs = v.GetAccessor("x");
    // x→z をゼロで埋める // acs は直接イテレータとして動作する
    for(; acs < len; acs++) ary[acs] = 0.0;
    console.log(ary); // 結果: [4, 0, 0, 0]

  • N6LVector.Add(rh)

  • 説明:add

  • パラメータ:rh:N6LVecto,real

  • 戻り値 :add:N6LVector

  • N6LVector.Sub(rh)

  • 説明:sub

  • パラメータ:rh:N6LVector,real

  • 戻り値:sub:N6LVector

  • N6LVector.Mul(rh)

  • 説明:mul

  • パラメータ:rh:N6LVector,N6LMatrix,real

  • 戻り値:mul:N6LVector,real

  • N6LVector.Div(rh)

  • 説明:div

  • パラメータ:rh:N6LVector,N6LMatrix,real

  • 戻り値:div:N6LVector,real

  • N6LVector.SetHomo(rh)

  • 説明:ホモフラグを設定する

  • パラメータ:rh:bool,設定値

  • 戻り値:ホモフラグを設定する:N6LVector

  • N6LVector.Repair(eps)

  • 説明:epsを0.0、1.0、-1.0付近の値に修復する

  • パラメータ:eps:error,real

  • 戻り値:これを更新する

  • N6LVector.Dot(rh)

  • 説明:dot

  • パラメータ:rh:N6LVector

  • 戻り値:dot:real

  • N6LVector.Cross(rh)

  • 説明:cross

  • パラメータ:rh:N6LVector

  • 戻り値:cross:N6LVector,real

  • N6LVector.isParallel(rh)

  • 説明:平行の場合

  • パラメータ:rh:N6LVector

  • 戻り値:true:平行:false:平行でない

  • N6LVector.Max()

  • 説明:要素の値の絶対値の最大値(符号はそのまま)

  • パラメータ:---

  • 戻り値 :要素の値の絶対値の最大値(符号はそのまま):real

  • N6LVector.DivMax()

  • 説明:要素の絶対値の最大値で割る

  • パラメータ:---

  • 戻り値 :要素:N6LVectorの絶対値の最大値で割った値
    注:各要素の値が「わずか」を超える場合、各要素の値より±1.0小さい値になることを防ぎます。
    :誤差の累積が「わずか」を超える場合や、±1.0を超える場合は致命的なエラーです。

  • N6LVector.LookAtMat2(rh)

  • 説明:lookat

  • パラメータ:this:N6LVector:eye, rh:N6LVector,N6LMatrix:lookat

  • 戻り値 :lookat:N6LMatrix

  • N6LVector.RotArcQuat(rh)

  • 説明:円弧の回転(円弧球)

  • パラメータ:this:N6LVector:vec1,rh:N6LVector:vec2

  • 戻り値:回転円弧(円弧ボール):N6LQuaternion

  • N6LVector.ZeroVec()

  • 説明:ゼロ

  • パラメータ:---

  • 戻り値:ゼロ:N6LVector

  • N6LVector.UnitVec(a)

  • 説明:単位ベクトル

  • パラメータ:a:軸指定

  • 戻り値:単位ベクトル:N6LVector

  • N6LVector.NormalVec(a)

  • 説明:正規化

  • パラメータ:a:a.Sub(this);normalize (this→a ベクトル),optional

  • 戻り値 :normalize:N6LVector

  • N6LVector.SquareAbs()

  • 説明:square absolute

  • パラメータ:---

  • 戻り値 :square absolute:real

  • N6LVector.Abs()

  • 説明:absolute

  • パラメータ:---

  • 戻り値 :absolute:real

  • N6LVector.DirectionCosine()

  • 説明:DirectionCosine

  • パラメータ:---

  • 戻り値 :DirectionCosine:N6LVector

  • N6LVector.Theta(rh)

  • 説明:angle

  • パラメータ:rh:N6LVector

  • 戻り値 :angle:rad

  • N6LVector.ThetaN(rh)

  • 説明:angle

  • パラメータ:rh:N6LVector

  • 戻り値 :true:-π/2<θ≦π/2:false:それ以外の場合は±πまで

  • N6LVector.Rot2D(theta)

  • 説明:rotate 2d

  • パラメータ:theta:rad

  • 戻り値 :rotate 2d:N6LVector

  • N6LVector.RotAxis(axis, theta)

  • 説明:rotate axis

  • パラメータ:axis:N6LVector:theta:rad

  • 戻り値 :rotate axis:N6LVector
    注:x軸を単位として同次座標回転します。

new N6LVector(4, true) .UnitVec(1); などと置き換えてください。

  • N6LVector.RotAxisQuat(axis, theta)
  • 説明:rotate axis(calc quaternion)
  • パラメータ:axis:N6LVector:theta:rad
  • 戻り値:rotate axis:N6LVector
    注:x軸を単位として同次座標回転します。

new N6LVector(4, true) .UnitVec(1); などと置き換えてください。

  • N6LVector.RotAxisVec(rotvec)

  • 説明:rotate axis(calc quaternion)

  • パラメータ:rotvec:N6LVector、回転ベクトル

  • 戻り値:rotate axis:N6LVector

  • N6LVector.ProjectAxis(axis)

  • 説明:投影軸

  • パラメータ:axis:N6LVector

  • 戻り値:投影軸:N6LVector
    注:単位x軸の同次座標投影。
    軸を new N6LVector(4, true) .UnitVec(1); などに置き換えてください。

  • N6LVector.DistanceDotLine(p, a, b)

  • 説明:点と直線の距離

  • パラメータ:p:N6LVector、point:a:N6LVector、直線の終点point:b:N6LVector,直線の終点

  • 戻り値 :点と直線の距離:実数

  • N6LVector.DistancePointLineLine(reta, retb, a0, a1, b0, b1)

  • 説明:直線と直線の距離と最近接位置

  • パラメータ:reta[0]:N6LVector,a(最近接位置点)、
    戻り値:retb[0]:N6LVector,b(最近接位置点)、
    戻り値:
    a0:N6LVector,直線aの端点:
    a1:N6LVector,直線aの端点:
    b0:N6LVector,直線bの端点:
    b1:N6LVector,直線bの端点:

  • 戻り値:直線と直線の距離:実数

  • N6LVector.PointLineLine(reta, retb, a0, a1, b0, b1)

  • 説明:最近接位置直線と直線の位置

  • パラメータ:reta[0]:N6LVector,a(最接近位置点)、
    戻り値:retb[0]:N6LVector,b(最接近位置点)、
    戻り値:
    a0:N6LVector,直線aの端点:a1:N6LVector,直線aの端点:
    b0:N6LVector,直線bの端点:b1:N6LVector,直線bの端点:

  • 戻り値:true:交差:false:交差なし

  • N6LVector.DistanceLineLine(a0, a1, b0, b1)

  • 説明:直線と直線の距離

  • パラメータ:a0:N6LVector,直線aエンドポイント:a1:N6LVector,直線 a エンドポイント:
    b0:N6LVector,直線 b エンドポイント:b1:N6LVector,直線 b エンドポイント:

  • 戻り値 :直線と直線の距離:実数

  • N6LVector.Homogeneous()

  • 説明:Homogeneous

  • パラメータ:---

  • 戻り値 :Homogeneous:N6LVector

  • N6LVector.ToHomo()

  • 説明:法線ベクトルへ

  • パラメータ:---

  • 戻り値 :法線ベクトルへ:N6LVector

  • N6LVector.ToNormal()

  • 説明:法線ベクトルへ

  • パラメータ:---

  • 戻り値 :法線ベクトル:N6LVector

  • N6LVector.Matrix()

  • 説明:回転ベクトルから回転行列を取得します

  • パラメータ:---

  • 戻り値 :回転ベクトル:N6LMatrixから回転行列を取得します

  • N6LVector.PosVecGetTQ(out)

  • 説明:平行移動した位置ベクトルとクォータニオンを取得します

  • パラメータ:out[]

  • 戻り値 :平行移動した位置ベクトルとクォータニオンを取得します:out[0]:N6LVector:translated,out[1]:N6LQuaternion:quaternion,

  • N6LVector.PosVecSetTQ(t,q)

  • 説明:平行移動した位置ベクトルとクォータニオンを設定しますクォータニオン

  • パラメータ:t:N6LVector:translated,q:N6LQuaternion:quaternion

  • 戻り値:位置ベクトルを変換してクォータニオンに設定する:N6LVector

  • N6LVector.PosVecMatrix()

  • 説明:行列を回転させる位置ベクトル

  • パラメータ:---

  • 戻り値:行列を回転させる位置ベクトル:N6LMatrix

  • N6LVector.PosVecMul(rh)

  • 説明:複数の位置ベクトル

  • パラメータ:rh:N6LVector():位置ベクトル

  • 戻り値:複数の位置ベクトル:N6LVector

  • N6LVector.Sphere4D()

  • 説明:Sphere4D

  • パラメータ:---

  • 戻り値 :Sphere4D:N6LQuaternion

  • N6LVector.FromLogAxis(base, range, x)

  • 説明:無限対数軸から法線軸へ

  • パラメータ:base:real,range:real,x:real:無限対数軸

  • 戻り値 :法線軸:real

  • N6LVector.ToLogAxis(base, range, x)

  • 説明:法線軸から無限対数軸へ

  • パラメータ:base:real,range:real,x:real:法線軸

  • 戻り値 :無限対数軸:real

  • N6LVector.FrustumInfVec(base, range, v)

  • 説明:無限遠近法投影

  • パラメータ:base:real,range:real,v:N6LVector:Parameters

  • 戻り値:無限遠近法投影:N6LVector

  • N6LVector.InvFrustumInfVec(base, range, v, z)

  • 説明:逆無限遠近法投影

  • パラメータ:base:real,range:real,v:N6LVector:Parameters,z:real

  • 戻り値:逆無限遠近法投影:N6LVector

N6LMatrix

目次に戻る

  • N6LMatrix:構築
  • メンバー
  • N6LMatrix.x[]:N6LVector
  • N6LMatrix.x[0]:N6LVector:w N6LMatrix.x[1]:N6LVector:x
  • N6LMatrix.x[2]:N6LVector:y N6LMatrix.x[3]:N6LVector:z など
  • N6LMatrix.bHomo:if Homogeneous
    var N6LMatrix = function(rh, m, n) { }
  • フォーマット
  • 4行4列
  • var mata = new N6LMatrix(4);
  • 4行8列
  • var mata = new N6LMatrix(4, 8);
  • 4行4列の単位行列
  • var mata = new N6LMatrix(
    new Array(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), 4, 4);
  • var mata = new N6LMatrix(new Array(new N6LVector(new Array(1, 0, 0, 0)),
    new N6LVector(new Array(0, 1, 0, 0)), new N6LVector(new Array(0, 0, 1, 0)),
    new N6LVector(new Array(0, 0, 0, 1)) ));
  • var mata = new N6LMatrix([1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], 0, 0, 0, 1 );
  • var matb = ねw N6LMatrix(mata); //ディープコピー
    :4次以上は同次座標とみなされます
    4次以上の従来の座標を作成したい場合は、N6LMatrix.SetHomo(false)** としてください

宣言の構築を続行してください

  • N6LMatrix.Comp(rh)

  • 説明:比較

  • パラメータ:rh:N6LMatrix:比較

  • 戻り値:ソースファイルを参照してください

  • N6LMatrix.Equal(rh)

  • 説明:等しい場合

  • パラメータ:rh:N6LMatrix:比較

  • 戻り値:true:false:

  • N6LMatrix.EpsComp(rh, eps, bbb)

  • 説明:比較

  • パラメータ:rh:N6LMatrix:比較 this:eps:error:real:bbb:true:同次要素を無視

  • 戻り値:ソースファイルを参照してください

  • N6LMatrix.EpsEqual(rh, eps)

  • 説明:等しい場合

  • パラメータ:rh:N6LMatrix:比較 this:eps:error:real

  • 戻り値:true:false:

  • N6LMatrix.Str()

  • 説明:文字列に変換

  • パラメータ:---

  • 戻り値:文字列に変換:string

  • N6LMatrix.Parse(str)

  • 説明:文字列から変換

  • パラメータ:str:string

  • 戻り値 :文字列:N6LMatrix から変換

  • N6LMatrix.ToX3DOM()

  • 説明:x3dom.fields.SFMatrix4f に変換

  • パラメータ:---

  • 戻り値 :x3dom.fields.SFMatrix4f:x3dom.fields.SFMatrix4f に変換

  • N6LMatrix.FromX3DOM(sf)

  • 説明:x3dom.fields.SFMatrix4f から変換

  • パラメータ:sf:x3dom.fields.SFMatrix4f

  • 戻り値 :x3dom.fields.SFMatrix4f:N6LMatrix から変換

  • N6LMatrix.To3JS()

  • 説明: THREE.Matrix4

  • パラメータ:---

  • 戻り値 :THREE.Matrix4 への変換:THREE.Matrix4

  • N6LMatrix.From3JS(ary)

  • 説明:配列からの変換

  • パラメータ:ary:Array()**

  • 戻り値 :配列からの変換:N6LMatrix

  • N6LMatrix.GetCol(rh)

  • 説明:列の取得

  • パラメータ:rh:int:column

  • 戻り値 :列の取得:N6LVector

  • N6LMatrix.GetRow(rh)

  • 説明:行の取得

  • パラメータ:rh:int:row

  • 戻り値 :get row:N6LVector

  • N6LMatrix.SetCol(rh, val)

  • 説明:列の設定

  • パラメータ:rh:int:columnval:N6LVector:value

  • 戻り値:列の設定:N6LMatrix

  • N6LMatrix.SetRow(rh, val)

  • 説明:行の設定

  • パラメータ:rh:int:row:val:N6LVector:value

  • 戻り値:行の設定:N6LMatrix

  • N6LMatrix.GetAccessor(it, out)

  • 説明:アクセサの取得
    it | w要素: "m33" → this.x[0].x[0]、x要素: "m00" → this.x[1].x[1]、y軸: "m1", "v1" → this.x[2]、
    行の最大値、列は9です。
    out = []; | out がメインの戻り値、関数の戻り値は補助的な戻り値であると仮定します。

  • パラメータ:it:string

  • 戻り値:accessor:int

  • N6LMatrix.Get(it)

  • 説明:「mXX」、「vX」、「length」、「dimension」で各値を取得し、内部配列への参照を「array」で返します。

  • パラメータ:it:string

  • 戻り値:value:real

  • N6LMatrix.Set(it, val)

  • 説明:{ "mXX","vX" } 、val を使って各値を val に設定します

  • パラメータ:it:string:val:real

  • 戻り値:value:real

  • N6LMatrix.Create(rh, m, n)

  • 説明:一般的な規則に基づいて構築

  • パラメータ:rh:Array:bh:bool:m:row:n:col

  • 戻り値
    var m = new N6LMatrix().Create([
    [1,0,0,1],
    [0,1,0,2],
    [0,0,1,3],
    [0,0,0,4]]);
    var arym = m.Get("array");
    var vv = m.Get("v0");//x軸
    var aryv = vv.Get("array");
    var lenv = vv.Get("length");
    var acsv = vv.GetAccessor("x");
    // x→zをゼロ埋め //acsは直接イテレータとして機能します
    for(; acsv < lenv; acsv++) aryv[acsv] = 0.0;
    m.Set("m23", 1);
    console.log(arym); // 結果: [4,0,0,0], [1,0,0,0], [2,0,1,0], 1,0,0,1
    var mm = new N6LMatrix().Create([
    1,0,0,1,
    0,1,0,2,
    0,0,1,3,
    0,0,0,4],4,4);
    var arymm = mm.Get("array");
    console.log(arymm); // 結果: [4,0,0,0], [1,1,0,0], [2,0,1,0], 3,0,0,1

  • N6LMatrix.Add(rh)

  • 説明:add

  • パラメータ:rh:N6LMatrix,real

  • 戻り値:add:N6LMatrix

  • N6LMatrix.Sub(rh)

  • 説明:sub

  • パラメータ:rh:N6LMatrix,real

  • 戻り値:sub:N6LMatrix

  • N6LMatrix.Mul(rh)

  • 説明:mul

  • パラメータ:rh:N6LMatrix,N6LVector,real

  • 戻り値 :mul:N6LMatrix,N6LVector

  • N6LMatrix.Div(rh)

  • 説明:div

  • パラメータ:rh:N6LMatrix,N6LVector,real

  • 戻り値:div:N6LMatrix,N6LVector

  • N6LMatrix.SetHomo(rh)

  • 説明:ホモフラグを設定する

  • パラメータ:rh:bool,値を設定する

  • 戻り値:ホモフラグを設定する:N6LMatrix

  • N6LMatrix.Repair(eps)

  • 説明:epsが0.0または1.0または-1.0付近の値に修復する

  • パラメータ:eps:error,real

  • 戻り値 :これを更新する

  • N6LMatrix.Max()

  • 説明:要素の値の絶対値の最大値(符号はそのまま)**

  • パラメータ:---

  • 戻り値 :要素の値の絶対値の最大値(符号はそのまま):real

  • N6LMatrix.DivMax()

  • 説明:要素の絶対値の最大値を値で割った値

  • パラメータ:---

  • 戻り値 :要素の絶対値の最大値を値で割った値:N6LMatrix
    注:各要素の値が「わずかに」を超える場合、各要素の値より±1.0小さい値になることを防ぎます。
    :誤差の累積が±1.0を超える場合は致命的なエラーです。

  • N6LMatrix.ZeroMat()

  • 説明:ゼロ

  • パラメータ:---

  • 戻り値:zero:N6LMatrix

  • N6LMatrix.UnitMat()

  • 説明:単位行列

  • パラメータ:---

  • 戻り値:単位行列:N6LMatrix

  • N6LMatrix.NormalMat()

  • 説明:正規化

  • パラメータ:---

  • 戻り値:normalize:N6LMatrix

  • N6LMatrix.TransposedMat()

  • 説明:転置

  • パラメータ:---

  • 戻り値:転置:N6LMatrix

  • N6LMatrix.TranslatedMat(rh)

  • 説明:translate

  • パラメータ:rh:N6LVector

  • 戻り値:translate:N6LMatrix

  • N6LMatrix.ScaleMat(rh)

  • 説明:scale

  • パラメータ:rh:N6LVector,real

  • 戻り値:scale:N6LMatrix

  • N6LMatrix.AffineMat(scale, rotate, translate)

  • 説明:affine

  • パラメータ:scale:N6LVector,real, rotate:N6LMatrix,N6LVector(rotate vector),N6LQuaternion, translate:N6LVector

  • 戻り値:affine:N6LMatrix

  • N6LMatrix.MoveMat(outmat, outv, d, pyr, v, a, vmin, vmax)

  • 説明:move

  • パラメータ:outmat[0]:N6LMatrix:ret:d 移動後の行列、outv[0]:N6LVector:ret:移動後の速度
    :d:N6LVector:移動後のoutmat[0]のみ、pyr:N6LVector:4次元:ピッチ ヨー ロール
    :v:実数:速度:N6LVector:移動後の速度、a:実数:加速、vmin,vmax:実数:速度の制限:if ==987654321.0、制限なし

  • 戻り値:移動後の行列:N6LMatrix

  • N6LMatrix.LookAtMat(eye, lookat, up)

  • 説明:lookat

  • パラメータ:eye:N6LVector、lookat:N6LVector、up:N6LVector

  • 戻り値:lookat:N6LMatrix

  • N6LMatrix.LookAtMat2(rh)

  • 説明:lookat

  • パラメータ:this:N6LVector:eye、rh:N6LVector、N6LMatrix:lookat

  • 戻り値:lookat:N6LMatrix

  • 内部呼び出し関数を使用する場合は、ソースファイルを参照してください。
    //呼び出し内部 LU分解逆行列 // iexは配列
    SubLUD(mx, m, n, iex)
    //LU分解逆行列 // すべてのパラメータは配列
    LUDMat(l, u, dt)
    // 連立一次方程式ソルバー // dt は配列
    SimEQ(m, n, dt)

  • N6LMatrix.InverseMat(dt, sw)

  • 説明:(連立一次方程式の解法を用いて) 逆行列を求めます
    :sw:int:計算スイッチ、オプション
    :1:TransposedMat() を使用:2:InverseMat00() を使用:3:InverseMat01() を使用:4:DeterminMatInvMat() を使用**
    :undefined:グローバル値を使用 SwDefInverseMat(=1:default):other:"Error"

  • パラメータ:dt:Array(出力パラメータ)Determinant,
    dt[0] に格納される行列式を格納する配列。
    このパラメータは、複数の値(逆行列と行列式)を返すために使用されます。

  • 戻り値 :逆行列:N6LMatrix

  • N6LMatrix.InverseMat00(dt)

  • 説明:(連立一次方程式を用いて)逆行列

  • パラメータ:dt:Array(出力パラメータ)Determinant、
    行列の行列式がdt[0]に格納される配列。

  • 戻り値 :逆行列:N6LMatrix

  • N6LMatrix.InverseMat01(dt)

  • 説明:(LU分解法を用いた)逆行列

  • パラメータ:dt:Array(出力パラメータ)Determinant,
    行列の行列式がdt[0]に格納される配列。

  • 戻り値 :逆行列:N6LMatrix

  • N6LMatrix.DeterminMatInvMat(dt)

  • 説明:(LU分解法を用いた)逆行列

  • パラメータ:dt:Array(出力パラメータ)Determinant,
    行列の行列式がdt[0]に格納される配列。

  • 戻り値 :逆行列:N6LMatrix

  • N6LMatrix.DeterminMat(dt)

  • 説明:Determin

  • パラメータ:dt:Array(出力パラメータ)Determinant,
    行列の行列式がdt[0]に格納される配列。

  • 戻り値 :Determin:real

  • 内部呼び出し関数を使用する場合は、ソースファイルを参照してください。
    //type double absolute//double型絶対値
    fabs(x)

  • N6LMatrix.Jacobi(n, ct, eps, A, A1, A2, X1, X2)

  • 説明:実対称行列(Jacobi)の固有値と固有ベクトル**

  • パラメータ:n : 順序:ct : 最大繰り返し回数:eps : 収束判定基準:
    A[0] : 対象行列:A1[0], A2[0] : 作業行列(nxn行列),A1の対角要素は次式の固有値:
    X1[0], X2[0] : 作業行列(nxn行列),X1の各列は固有ベクトル

  • 戻り値 :0:正常:1:収束しない:

  • N6LMatrix.EigenVec(ct, eps, A, det, eigen)

  • 説明:実対称行列(Jacobi行列)の固有値と固有ベクトル**

  • パラメータ:n : 順序:ct : 最大繰り返し回数:eps : 収束判定基準:
    A[0] :対象行列:det[0] : 固有値、 * 戻り値 :eigen[0] : 固有ベクトル、 戻り値

  • 戻り値 :0:正常、1:収束しない

  • N6LMatrix.DiagonalMat(ct, eps)

  • 説明:DiagonalMatrix

  • パラメータ:ct : 繰り返し回数の最大値、eps : 収束判定基準:どちらも任意

  • 戻り値 :固有ベクトル:N6LMatrix

  • N6LMatrix.Diagonal(ct, eps)

  • 説明:Diagonal

  • パラメータ:ct : 繰り返し回数の最大値、eps : 収束判定基準:どちらも任意

  • 戻り値 :Diagonal:N6LMatrix

  • N6LMatrix.Rot2D(theta)

  • 説明:2次元回転

  • パラメータ:theta:rad

  • 戻り値:行列を回転:N6LMatrix

  • N6LMatrix.RotAxis(axis, theta)

  • 説明:軸を回転

  • パラメータ:axis:N6LVector:theta:rad

  • 戻り値:軸を回転:N6LMatrix
    注:スケール、移動情報は保持されます
    単位x軸の同次座標回転
    軸を new N6LVector(4, true) .UnitVec(1); などに置き換えてください

  • N6LMatrix.RotAxisQuat(axis, theta)

  • 説明:rotate axis(calc quaternion)

  • パラメータ:axis:N6LVector:theta:rad

  • 戻り値:rotate axis:N6LMatrix
    注:scale、translate情報は保持されます
    行列の軸に対する回転において、処理速度を重視する場合は
    まず、単位クォータニオンを構築します(N6LQuaternion.UnitQuat())
    その後、クォータニオン内で回転計算のみを行います(N6LQuaternion.RotAxisQuat())**
    行列クォータニオンに変換してください(N6LQuaternion.Matrix())
    そして最後に、得られた行列を元の行列に掛け合わせてください(N6LMatrix.Mul())
    N6LMatrix.RotAxisQuat()のみで、すべての計算を行います。
    行列の変換は毎回計算するため、クォータニオンは、
    処理速度の点では意味がありません。
    単に、便宜上のみ使用することを目的としています。
    単位x軸の同次座標回転
    軸を new N6LVector(4, true) .UnitVec(1); などに置き換えてください。
    Wiki内の参考リンク:回転を高速化するためにクォータニオンを使用する

  • N6LMatrix.RotAxisVec(rotvec)

  • 説明:rotate axis(calc quaternion)

  • パラメータ:rotvec:N6LVector,rotate vector

  • 戻り値:rotate axis:N6LMatrix
    注:scale、translate 情報は保持されます
    回転に関しては処理速度を重視する場合、行列の軸に対して
    まず単位クォータニオンを構築します (N6LQuaternion.UnitQuat())
    クォータニオンのみの回転計算を全て終えた後 (N6LQuaternion.RotAxisVec())
    クォータニオンを行列に変換してください (N6LQuaternion.Matrix())
    そして最後に、計算して得られた行列と元の行列を掛け合わせてください (N6LMatrix.Mul())
    N6LMatrix.RotAxisVec() のみで、全て計算します
    ベクトルからクォータニオンへの変換を毎回計算するため、
    処理速度の面で意味がありません
    また、N6LQuaternion.RotAxisVec() はベクトルからクォータニオンへの変換を行うため
    (N6LQuaternion.RotAxisQuat()) よりも処理が重くなります
    単純に、便利にお使いいただくために
    Wiki内の参考リンク:回転を高速化するためにクォータニオンを使用する

  • N6LMatrix.Homogeneous()

  • 説明:Homogeneous

  • パラメータ:---

  • 戻り値 :Homogeneous:N6LMatrix

  • N6LMatrix.ToHomo()

  • 説明:Homogeneous行列に変換

  • パラメータ:---

  • 戻り値 :Homogeneous行列に変換:N6LMatrix

  • N6LMatrix.ToNormal()

  • 説明:Normal行列に変換

  • パラメータ:---

  • 戻り値 :法線行列へ:N6LMatrix

  • N6LMatrix.Pos()

  • 説明:位置の取得

  • パラメータ:---

  • 戻り値:位置の取得:N6LVector

  • N6LMatrix.Scale()

  • 説明:スケールの取得

  • パラメータ:---

  • 戻り値:スケールの取得:N6LVector

  • N6LMatrix.Trace()

  • 説明:トレース

  • パラメータ:---

  • 戻り値:trace:real

  • 内部呼び出し関数を使用する場合は、ソースファイルを参照してください。
    QSIGN(x)
    QT(b)

  • N6LMatrix.Quaternion()

  • 説明:Quaterni回転行列の取得について

  • パラメータ:---

  • 戻り値 :回転行列のクォータニオン取得:N6LQuaternion

  • N6LMatrix.Vector()

  • 説明:回転行列の回転ベクトル取得

  • パラメータ:---

  • 戻り値 :回転行列の回転ベクトル取得:N6LVector

  • N6LMatrix.PosVector()

  • 説明:位置ベクトルの取得

  • パラメータ:---

  • 戻り値 :位置ベクトルの取得:N6LVector

  • N6LMatrix.FrustumMat(left, right, top, bottom, near, far)

  • 説明:Frustum

  • パラメータ:left,right,top,bottom,near,far:real:Frustumパラメータ

  • 戻り値:Frustum:N6LMatrix

  • N6LMatrix.OrthoMat(left, right, top, bottom, near, far)

  • 説明:Ortho

  • パラメータ:left,right,top,bottom,near,far:real:Frustumパラメータ

  • 戻り値:Ortho:N6LMatrix

  • N6LMatrix.Householder()

  • 説明:Householder

  • パラメータ:---

  • 戻り値:Householder:N6LMatrix

  • N6LMatrix.QRMethod()

  • 説明:QRMethod

  • パラメータ:---

  • 戻り値 :固有値対角線:N6LMatrix

  • N6LMatrix.EulerAngle(first, second, third, eps)

  • 説明:オイラー角を取得します

  • パラメータ:first,second,third:1,2,3,各軸の順序,eps:error,optional

  • 戻り値 :オイラー角を取得します,:N6LVector,rad
    注:第2軸の角度が0の場合、第2軸にも角度が設定されることがあります。
    第2軸の角度は、第1軸への再計算で設定されます。

N6LQuaternion

目次に戻る

  • N6LQuaternion:構築

  • メンバー

  • N6LQuaternion.q:N6LVector

  • N6LQuaternion.q.x[0]:w N6LQuaternion.q.x[1]:x

  • N6LQuaternion.q.x[2]:y N6LQuaternion.q.x[3]:z
    var N6LQuaternion = function(w, x, y, z) { }

  • フォーマット

  • var quta = new N6LQuaternion(1, 0, 0, 0);

  • var quta = new N6LQuaternion(1, new Array(0, 0, 0));

  • var quta = new N6LQuaternion(new Array(1, 0, 0, 0));

  • var quta = new N6LQuaternion(new N6LVector([1, 0, 0, 0]));

  • var quta = new N6LQuaternion(1, new N6LVector([1, 2, 3, 4], true));

  • var quta = new N6LQuaternion([1, 0, 0, 0]);

  • var qutb = new N6LQuaternion(quta); //ディープコピー

  • N6LQuaternion.Comp(rh)

  • 説明:比較

  • パラメータ:rh:N6LQuaternion:比較

  • 戻り値:ソースファイルを参照してください

  • N6LQuaternion.Equal(rh)

  • 説明:等しい場合

  • パラメータ:rh:N6LQuaternion:比較

  • 戻り値:true:false:

  • N6LQuaternion.EpsComp(rh, eps)

  • 説明:比較

  • パラメータ:rh:N6LQuaternion:比較:eps:error:real

  • 戻り値:ソースファイルを参照してください

  • N6LQuaternion.EpsEqual(rh, eps)

  • 説明:等しい場合

  • パラメータ:rh:N6LQuaternion:比較 this:eps:error:real

  • 戻り値:true:false:

  • N6LQuaternion.Str()

  • 説明:文字列に変換

  • パラメータ:---

  • 戻り値:文字列に変換:string

  • N6LQuaternion.Parse(str)

  • 説明:文字列から変換

  • パラメータ:str:string

  • 戻り値:文字列から変換:N6LQuaternion

  • N6LQuaternion.GetAccessor(it)

  • 説明:"w"でアクセサを取得します。 "x", "y", "z"

  • パラメータ:it:string

  • 戻り値:accessor:int

  • N6LQuaternion.Get(it)

  • 説明:「w」、「x」、「y」、「z」、「length」、「dimension」でそれぞれの値を取得し、「array」で内部配列への参照を返します。

  • パラメータ:it:string

  • 戻り値:value:real

  • N6LQuaternion.Set(it, val)

  • 説明:{ "w", "x", "y", "z" } 、val を使って各値を val に設定します。

  • パラメータ:it:string:val:real

  • 戻り値:value:real

  • N6LQuaternion.Create(rh, val)

  • 説明:一般的な規則に基づいて構築

  • パラメータ:rh:Array:bh:bool:m:row:n:col

  • 戻り値
    var q = new N6LQuaternion().Create([1,2,3,4]);
    var aryq = q.Get("array");
    var lenq = q.Get("length");
    var acsq = q.GetAccessor("x");
    // x→z をゼロ埋めします //acs は直接イテレータとして機能します
    for(; acsq < lenq; acsq++) aryq[acsq] = 0.0;
    console.log(aryq); // 結果: [4, 0, 0, 0]

  • N6LQuaternion.Add(rh)

  • 説明:add

  • パラメータ:rh:N6LQuaternion,real

  • 戻り値:add:N6LQuaternion

  • N6LQuaternion.Sub(rh)

  • 説明:sub

  • パラメータ:rh:N6LQuaternion,real

  • 戻り値:sub:N6LQuaternion

  • N6LQuaternion.Mul(rh)

  • 説明:mul

  • パラメータ:rh:N6LQuaternion,real

  • 戻り値:mul:N6LQuaternion

  • N6LQuaternion.Div(rh)

  • 説明:div

  • パラメータ:rh:real

  • 戻り値:div:N6LQuaternion

  • N6LQuaternion.DivMax()

  • 説明:値で割る要素の絶対値の最大値のe

  • パラメータ:---

  • 戻り値 :要素の絶対値の最大値をN6LQuaternionの値で割った値
    注:各要素の値が「わずかに」以上になる場合、各要素の値より±1.0小さい値になることを防ぎます。
    :誤差の累積が「わずか」で、±1.0を超える場合は致命的なエラーです。

  • N6LQuaternion.Repair(eps)

  • 説明:epsを0.0または1.0または-1.0付近の値に修復します。

  • パラメータ:eps:error,real

  • 戻り値 :これを更新します。

  • N6LQuaternion.SquareAbs()

  • 説明:絶対値の平方根

  • パラメータ:---

  • 戻り値 :正方絶対値:実数

  • N6LQuaternion.Abs()

  • 説明:絶対値

  • パラメータ:---

  • 戻り値 :絶対値:実数

  • N6LQuaternion.ConjugationQuat()

  • 説明:共役

  • パラメータ:---

  • 戻り値 :共役:N6LQuaternion

  • N6LQuaternion.InverseQuat()

  • 説明:逆

  • パラメータ:---

  • 戻り値 :逆:N6LQuaternion

  • N6LQuaternion.ZeroQuat()

  • 説明:ゼロ

  • パラメータ:---

  • 戻り値 :zero:N6LQuaternion

  • N6LQuaternion.UnitQuat()

  • 説明:単位クォータニオン

  • パラメータ:---

  • 戻り値 :単位クォータニオン:N6LQuaternion

  • N6LQuaternion.NormalQuat()

  • 説明:normalize

  • パラメータ:---

  • 戻り値 :normalize:N6LQuaternion

  • N6LQuaternion.Dot(rh)

  • 説明:dot

  • パラメータ:rh:N6LQuaternion

  • 戻り値 :dot:real

  • N6LQuaternion.RotAxisQuat(axis, theta)

  • 説明:軸を回転

  • パラメータ:axis:N6LVectortheta:rad

  • 戻り値:rotate axis:N6LQuaternion
    注:単位x軸を軸とした同次座標回転。
    new N6LVector(4, true) .UnitVec(1); など。
    Wiki内の参考リンク:回転を高速化するためにクォータニオンを使用する

  • N6LQuaternion.RotAxisVec(rotvec)

  • 説明:軸を回転(calc quaternion)

  • パラメータ:rotvec:N6LVector,回転ベクトル

  • 戻り値:rotate axis:N6LQuaternion
    Wiki内の参考リンク:回転を高速化するためにクォータニオンを使用する

  • N6LQuaternion.Axis(axis, theta)

  • 説明:軸の回転

  • パラメータ:axis[0]:N6LVector, * 戻り値 :theta[0]:rad, 戻り値

  • 戻り値 :---

  • N6LQuaternion.Matrix()

  • 説明:クォータニオンからの回転行列

  • パラメータ:---

  • 戻り値 :回転行列:N6LMatrix

  • N6LQuaternion.Lerp(q, t)

  • 説明:lerp

  • パラメータ:q:N6LQuaternion、終了ステータス:t:0.0(開始)~1.0(終了):

  • 戻り値 :lerp:N6LQuaternion

  • N6LQuaternion.Slerp(q, t)

  • 説明:slerp

  • パラメータ:q:N6LQuaternion、終了ステータス:t:0.0(開始)~1.0(終了):

  • 戻り値 :slerp:N6LQuaternion

  • N6LQuaternion.Slerp2(q, t)

  • 説明:slerp

  • パラメータ:q:N6LQuaternion、終了ステータス:t:0.0(開始)~1.0(終了):

  • 戻り値:slerp:N6LQuaternion

  • N6LQuaternion.Sphere4D()

  • 説明:Sphere4D

  • パラメータ:---

  • 戻り値:Sphere4D:N6LVector

N6LLnQuaternion

目次に戻る

  • N6LLnQuaternion:構築

  • メンバー

  • N6LLnQuaternion.q:N6LVector

  • N6LLnQuaternion.q.x[0]:x N6LLnQuaternion.q.x[1]:y N6LLnQuaternion.q.x[2]:z
    var N6LLnQuaternion = function(x, y, z) { }
    フォーマット

  • var quta = new N6LLnQuaternion(0, 0, 0);

  • var quta = new N6LLnQuaternion(new Array(0, 0, 0));

  • var quta = new N6LLnQuaternion(new N6LVector([0, 0, 0]));

  • var quta = new N6LLnQuaternion([0, 0, 0]);

  • var qutb = new N6LLnQuaternion(quta); //ディープコピー

  • N6LLnQuaternion.Comp(rh)

  • 説明:比較

  • パラメータ:rh:N6LLnQuaternion:比較 this:eps:error:real

  • 戻り値:ソースファイルを参照してください

  • N6LLnQuaternion.Equal(rh)

  • 説明:等しい場合

  • パラメータ:rh:N6LLnQuaternion:比較 this

  • 戻り値:true:false:

  • N6LLnQuaternion.EpsComp(rh, eps)

  • 説明:比較

  • パラメータ:rh:N6LLnQuaternion:比較 this:eps:error:real

  • 戻り値:ソースファイルを参照してくださいソースファイル

  • N6LLnQuaternion.EpsEqual(rh, eps)

  • 説明:等しい場合

  • パラメータ:rh:N6LLnQuaternion:比較 this:eps:error:real

  • 戻り値:true:false:

  • N6LLnQuaternion.Str()

  • 説明:文字列に変換

  • パラメータ:---

  • 戻り値:文字列に変換:string

  • N6LLnQuaternionrnion.Parse(str)

  • 説明:文字列から変換

  • パラメータ:str:文字列

  • 戻り値:文字列からN6LLnQuaternionに変換

  • N6LLnQuaternion.GetAccessor(it)

  • 説明:"x", "y", "z" でアクセサを取得します

  • パラメータ:it:文字列

  • 戻り値:accessor:int

  • N6LLnQuaternion.Get(it)

  • 説明:"x", "y", "z", "length", "dimension" でそれぞれの値を取得し、"array" で内部配列への参照を返します。

  • パラメータ:it:string

  • 戻り値:value:real

  • N6LLnQuaternion.Set(it, val)

  • 説明:{ "x", "y", "z" } の各値をvalでvalに設定します。

  • パラメータ:it:string:val:real

  • 戻り値:value:real

  • N6LLnQuaternion.Create(rh, val)

  • 説明:一般的な規則に基づいて構築

  • パラメータ:rh:Array:bh:bool:m:row:n:col

  • 戻り値
    var l = new N6LLnQuaternion().Create([1,2,3]);
    var aryl = l.Get("array");
    var lenl = l.Get("length");
    var acsl = l.GetAccessor("y");
    // x→z をゼロ埋めする //acs は直接イテレータとして機能します
    for(; acsl < lenl; acsl++) aryl[acsl] = 0.0;
    console.log(aryl); // 結果: [1, 0, 0]

  • N6LLnQuaternion.Add(rh)

  • 説明:add

  • パラメータ:rh:N6LLnQuaternion

  • 戻り値:add:N6LLnQuaternion

  • N6LLnQuaternion.Sub(rh)

  • 説明:sub

  • パラメータ:rh:N6LLnQuaternion

  • 戻り値:sub:N6LLnQuaternion

  • N6LLnQuaternion.Mul(rh)

  • 説明:mul

  • パラメータ:rh:real

  • 戻り値:mul:N6LLnQuaternion

  • N6LLnQuaternion.Div(rh)

  • 説明:div

  • パラメータ:rh:real

  • 戻り値:div:N6LLnQuaternion

  • N6LLnQuaternion.DivMax()

  • 説明:要素の絶対値の最大値で割ります

  • パラメータ:---

  • 戻り値:要素:N6LLnQuaternionの絶対値の最大値で割ります
    注:各要素の値が±1.0未満の場合、各要素の値より±1.0未満になることを防ぎます。
    :誤差の累積が「わずか」で、±1.0を超える場合は致命的なエラーです。

  • N6LLnQuaternion.Repair(eps)

  • 説明:epsの近傍の値に修復します。 0.0または1.0または-1.0

  • パラメータ:eps:error,real

  • 戻り値:renew this

  • N6LLnQuaternion.SquareAbs()

  • 説明:square absolute

  • パラメータ:---

  • 戻り値:square absolute:real

  • N6LLnQuaternion.Abs()

  • 説明:absolute

  • パラメータ:---

  • 戻り値:absolute:real

  • N6LLnQuaternion.ZeroLnQuat()

  • 説明:zero

  • パラメータ:---

  • 戻り値:zero:N6LLnQuaternion

  • N6LLnQuaternion.RotAxisLnQuat(axis, theta)

  • 説明:軸を回転

  • パラメータ:axis:N6LVector:theta:rad

  • 戻り値:rotate axis:N6LLnQuaternion
    注:単位x軸の同次座標回転。
    軸を new N6LVector(4, true) .UnitVec(1); などに置き換えてください。

  • N6LLnQuaternion.Axis(axis, theta)

  • 説明:軸を回転

  • パラメータ:axis[0]:N6LVector, * 戻り値 :theta[0]:rad, 戻り値

  • 戻り値 :---

  • N6LLnQuaternion.Lerp(q, t)

  • 説明:lerp

  • パラメータ:q:N6LLnQuaternion、終了ステータス:t:0.0(開始)~1.0(終了):

  • 戻り値:lerp:N6LQuaternion
    :

  • N6LLnQuaternion.Lerp2(d0, q, d)

  • 説明:lerp

  • パラメータ:d0:実数:this:q[]:N6LLnQuaternionの加重平均、配列:d[]:実数、配列:加重平均

  • 戻り値:lerp:N6LQuaternion

N6LKeyBoard

目次に戻る

  • N6LKeyBoard:構築
  • 説明:As <body HTMLファイル内のonload="initKeyBoard(tman, function() { func(); });">
    tman: タイマーマネージャとfuncキーボードチェックメソッドが結びついています。

    function func(){

if(KeyB.keystate[KeyB.indexof(KeyB.ToRealID("VK_N1"))]){//テンキー1のKeyDown
...skip...
}
if(KeyB.keystate[KeyB.indexof(KeyB.ToRealID("VK_N2"))]){//テンキー2のKeyDown
...skip...
}
...スキップ...}

  • N6LKeyBoard.setfunc(func)

  • 説明:キーボードチェックメソッドが結びついています

  • パラメータ:func:method

  • 戻り値 :---

  • N6LKeyBoard.setenable(b)

  • 説明:キーボードの有効化設定

  • パラメータ:b:enable:bool

  • 戻り値 :---

  • N6LKeyBoard.indexof(str)

  • 説明:実名IDのインデックス

  • パラメータ:str:string:実名ID

  • 戻り値 :実名IDのインデックス:integer

  • N6LKeyBoard.addAlias(ary)

  • 説明:追加のエイリアス名ID

  • パラメータ:ary:Array:[srcID, destID]

  • 戻り値:---

  • N6LKeyBoard.delAlias(str)

  • 説明:エイリアス名が関連付けられた文字列を削除します

  • パラメータ:str:string:実名IDまたはエイリアス名ID

  • 戻り値:---

  • N6LKeyBoard.addUnityAlias(ary)

  • 説明:追加のUnityエイリアス名ID

  • パラメータ:ary:Array:[tiedID, aliasID, ...]

  • 戻り値 :---

  • N6LKeyBoard.delUnityAlias(str)

  • 説明:Unityエイリアス名IDの削除

  • パラメータ:str:string:aliasID

  • 戻り値 :---

  • N6LKeyBoard.UnityAlias(str)

  • 説明:エイリアス名でUnityエイリアス名を取得

  • パラメータ:str:string:aliasID

  • 戻り値 :Unityエイリアス名ID:string

  • N6LKeyBoard.isPressUnityAlias(str)

  • 説明:Unityエイリアス名IDの押下情報

  • パラメータ:str:string:aliasID

  • 戻り値:Unityエイリアス名IDの押下情報:bool

  • N6LKeyBoard.ToAlias(str, ret)

  • 説明:エイリアス名IDへの変換

  • パラメータ:str:string:実名ID:ret:Array:エイリアス名IDのリスト:戻り値

  • 戻り値:最深エイリアス名ID:string

  • N6LKeyBoard.ToReal(str)

  • 説明:実名IDへの変換

  • パラメータ:str:string:エイリアス名ID

  • 戻り値:実名ID:文字列

N6LMassPoint

目次に戻る

  • N6LMassPoint:構築
  • メンバー
  • N6LMassPoint.mass:Real:質点の質量
  • N6LMassPoint.e:Real:軌道離心率
  • N6LMassPoint.r:Real:質点の半径
  • N6LMassPoint.x:N6LVector:質点の位置
  • N6LMassPoint.v:N6LVector:質点の速度
  • N6LMassPoint.va:内部計算用:絶対速度値
  • N6LMassPoint.x0:N6LVector:内部計算用
  • N6LMassPoint.x1:N6LVector:内部計算用
  • N6LMassPoint.v1:N6LVector:内部計算用
  • N6LMassPoint.v2:N6LVector:内部計算用
  • N6LMassPoint.vn:N6LVector:内部計算用:法線速度
  • N6LMassPoint.w:N6LVector:内部計算用
  • N6LMassPoint.w1:N6LVector:内部計算用
  • N6LMassPoint.a:N6LVector():質点加速度

var N6LMassPoint = function(px, pv, pm, pr, pe) { }
フォーマット

  • var mp = [];

  • mp[i] = new N6LMassPoint(new N6LVector([0, 0, 0]), new N6LVector([0, 0, 0]), 1, 1, 0);

  • mpA[i] = new N6LMassPoint(mp[i]);

  • ...

  • 3次元ベクトル処理の構築

  • mpA[i] = new N6LMassPoint(3);

  • N6LMassPoint.Comp(rh)

  • 説明:比較

  • パラメータ:rh:N6LMassPoint:比較 this:eps:error:real

  • 戻り値:ソースファイルを参照してください

  • N6LMassPoint.Equal(rh)

  • 説明:等しい場合

  • パラメータ:rh:N6LMassPoint:比較 this

  • 戻り値:true:false:

  • N6LMassPoint.EpsComp(rh, eps)

  • 説明:比較

  • パラメータ:rh:N6LMassPoint:比較 this:eps:error:real

  • 戻り値:ソースファイルを参照してください

  • N6LMassPoint.EpsEqual(rh, eps)

  • 説明:等しい場合

  • パラメータ:rh:N6LMassPoint:比較 this:eps:error:real

  • 戻り値:true:false:

N6LPlanet

目次に戻る

  • N6LPlanet:構築
  • メンバー
  • N6LPlanet.m_earth:N6LPlanet:地球への参照
  • N6LPlanet.m_pno:int:惑星番号
  • N6LPlanet.m_pname:string:惑星名
  • N6LPlanet.m_dat0:Date:日時
  • N6LPlanet.m_nday:nday:1996年1月1日から何日経過したか?
  • N6LPlanet.m_a:軌道長半径
  • N6LPlanet.m_e:離心率
  • N6LPlanet.m_l0:基点
  • N6LPlanet.m_nperday:平均運動
  • N6LPlanet.m_ra:近日点
  • N6LPlanet.m_rb:遠日点
  • N6LPlanet.m_t:公転周期
  • N6LPlanet.m_s:昇交点経度
  • N6LPlanet.m_i:軌道傾斜角
  • N6LPlanet.m_w:近日点天経度
  • N6LPlanet.m_mv:速度
  • N6LPlanet.m_m:質量
  • N6LPlanet.m_r:半径
  • N6LPlanet.x0:N6LVector:位置
  • N6LPlanet.v0:N6LVector:速度
  • N6LPlanet.ex:N6LVector:地心座標
  • N6LPlanet.m_el:天経
  • N6LPlanet.m_d:光路差
  • N6LPlanet.m_asc:アセンダント
  • N6LPlanet.m_hs:配列:家
  • N6LPlanet.m_rev:bool:逆位相
  • N6LPlanet.CNST_G = 0.00000000006673
  • N6LPlanet.CNST_C = 299792458.0
  • N6LPlanet.CNST_AU = 149597870700.0
  • N6LPlanet.CNST_DR = 0.017453292519943
  • N6LPlanet.CNST_TAU = 499.004782
  • N6LPlanet.m_ono:int:中心天体の惑星番号

構築

  • Create(pno, pname, nday, dat0, aa, ae, al0, anperday, ara, arb, at, aas, ai, aw, am, ar, amv)

  • 説明:N6LPlanetの一般的な構築

  • パラメータ:pno//惑星番号:pname//惑星名:nday//1996年1月1日から何日経過したか?
    dat0//日時:aa//軌道長半径:ae//離心率:al0//紀元:1日あたり//平均運動
    ara//近日点:arb//遠日点:at//軌道周期:aas//昇交点経度ai//軌道傾斜角:aw//近日点天経度:am//質量
    ar//半径:amv//速度

  • 戻り値 :---

  • CreateEarth(pno, pname, nday, dat0, aa, ae, al0, anperday, ara, arb, at, aas, ai, aw, am, ar)

  • 説明:地球 N6LPlanet の構築

  • パラメータ:pno//惑星番号:pname//惑星名:nday//1996年1月1日から何日経過したか?
    dat0//datetime:aa//軌道長半径:ae//離心率:al0//epoch:anperday//平均運動
    ara//近日点:arb//遠日点:at//軌道周期:aas//昇交点経度
    ai//軌道傾斜角:aw//近日点天経度:am//質量
    ar//半径:amv//速度

  • 戻り値 :---

  • CreatePlanet(pno, pname, nday, dat0, aa, ae, al0, anperday, ara, arb, at, aas, ai, aw, am, ar, earth)

  • 説明:地球から見た惑星 N6LPlanet の構築

  • パラメータ:pno//惑星番号:pname//惑星名:nday//1996年1月1日から何日経過したか?
    dat0//日時:aa//軌道長半径:ae//離心率:al0//基点:1日あたり//平均運動
    ara//近日点:arb//遠日点:at//軌道周期:aas//昇交点経度
    ai//軌道傾斜角:aw//近日点天経度:am//質量
    ar//半径:amv//速度:earth:N6LPlanet:地球参照

  • 戻り値 :---

  • CreateMoon(pno, pname, nday, dat0, add, earth, bbb)

  • 説明:地球から見た月 N6LPlanet の構築

  • パラメータ:pno//惑星番号:pname//惑星名:nday//現在から何日経過したか1996年1月1日?
    dat0//datetime:add//longitude:earth:N6LPlanet:地球参照:bbb//使用しない

  • 戻り値 :---

  • CreateConfig(pno, pname, nday, dat0, ax, earth)

  • 説明:地球から見た月 N6LPlanet の構築

  • パラメータ:pno//惑星番号:pname//惑星名:nday//1996年1月1日から何日経過したか?
    dat0//datetime:ax//天経度:earth:N6LPlanet:地球参照:bbb//使用しない

  • 戻り値 :---

  • CreateEtc(pno, pname, nday, dat0, sw, earth)

  • 説明:地球から見た月 N6LPlanet の構築

  • パラメータ:pno//惑星番号:pname//惑星名:nday//1996年1月1日から何日経過したか?
    dat0//datetime:sw//switch:earth:N6LPlanet:地球への参照:bbb//使用しない
    sw:0:Lilith:1:dragon head:2:dragon tail
    3:no include asc include N6LPlanet(i,0).m_hs(0)
    4:no include mc include N6LPlanet(i,0).m_hs(9)

  • 戻り値 :---

  • 内部呼び出し関数を使用する場合は、ソースファイルを参照してください。
    recompute(nday)
    InitMoon(t)
    Init(nday)
    Init2(nday)
    fabs(x)
    sgnv(x, y, vx, vy) {

  • N6LPlanet.Comp(rh)

  • 説明:比較

  • パラメータ:rh:N6LPlanet:比較

  • 戻り値:ソースファイルを参照してください

  • N6LPlanet.Equal(rh)

  • 説明:等しい場合

  • パラメータ:rh:N6LPlanet:比較

  • 戻り値:true:false:

  • N6LPlanet.EpsComp(rh, eps)

  • 説明:比較

  • パラメータ:rh:N6LPlanet:比較:eps:error:real

  • 戻り値:ソースファイルを参照してください

  • N6LPlanet.EpsEqual(rh, eps)

  • 説明:等しい場合

  • パラメータ:rh:N6LPlanet:比較this:eps:error:real

  • 戻り値 :true:false:

  • N6LPlanet.kepler(nday, xx, num)

  • 説明:ケプラー方程式

  • パラメータ:nday:xx0:N6LVector:xyz:num:近似反復回数(デフォルト=100)

  • 戻り値 :近点角

  • N6LPlanet.ecliptic(x, y, z, xyz)

  • 説明:xyzから黄道へ

  • パラメータ:x,y,z:xyz0:黄道

  • 戻り値 :---

  • N6LPlanet.asc(dat1)

  • 説明:アセンダント

  • パラメータ:dat1:日付:

  • 戻り値:---

  • N6LPlanet.house(aasc)

  • 説明:家

  • パラメータ:aasc:アセンダント

  • 戻り値:---

N6LRngKt

目次に戻る

  • N6LRngKt:構築

  • メンバー

  • N6LRngKt.CNST_G = 0.00000000006673:内部計算用

  • N6LRngKt.CNST_C = 299792458.0:内部計算用

  • N6LRngKt.CNST_AU = 149597870700.0:内部計算用

  • N6LRngKt.dms:内部計算用

  • N6LRngKt.n:内部計算用

  • N6LRngKt.mp:内部計算用

  • N6LRngKt.dt:内部計算用

  • N6LRngKt.rdx:内部計算用

  • N6LRngKt.dx:内部計算用

  • N6LRngKt.nrm:内部計算用

  • N6LRngKt.pow:内部計算用

  • N6LRngKt.ik:内部計算用

  • N6LRngKt.im:内部計算用

  • N6LRngKt.r:内部計算用

  • N6LRngKt.aa:内部計算用

  • N6LRngKt.al:内部計算用

  • N6LRngKt.ap:内部計算用

  • N6LRngKt.b:内部計算用

  • N6LRngKt.c:内部計算用

  • N6LRngKt.d:内部計算用

  • N6LRngKt.coef = [1.0, 2.0, 2.0, 1.0]:内部計算用

  • N6LRngKt.swa//力と距離の関係

  • N6LRngKt.swb//力と速度の比例関係

  • N6LRngKt.swc//力と速度の二乗の比例関係

  • N6LRngKt.swd//力と一定関係

  • N6LRngKt.Init(pmp, pdt, cc, cg)

  • 説明:init

  • パラメータ:pmp:N6LMassPoint[]:pdt:Micro Time:cc:光速:cg:万有引力定数

  • 戻り値 :---

  • N6LRngKt.UpdateFrame()

  • 説明:全質点に対するルンゲ・クッタ法(更新ごとに呼び出されます)

  • パラメータ:---

  • 戻り値 :---

  • N6LRngKt.UpdateFrame2()

  • 説明:中心物体に対するルンゲ・クッタ法(更新ごとに呼び出されます)

  • パラメータ:---

  • 戻り値 :---

  • 内部呼び出し関数を使用する場合は、ソースファイルを参照してください。
    VelocityAccl2D(v, a, dt)
    VelocityAccl3D(v, a, dt)
    VelocityAdd2D(v0, v1)
    VelocityAdd3D(v0, v1)
    GetSRadius(mass, cc, cg)
    GetEccentricity(p1, v1, p2)
    ToSchwartz(v, e)
    ToNAS6()
    GetA(r, m, mr, v, e)
    accel()
    accel2()

N6LHsv

目次に戻る

  • N6LHsv:構築
  • メンバー
  • N6LHsv.argb = [0.0, 0.0, 0.0, 0.0];
  • N6LHsv.ahsv = [0.0, 0.0, 0.0, 0.0];

構築例

  • これは

  • var col = new N6LHsv(hsv);

  • RGB

  • var col = new N6LHsv(0, 255, 255, 255, 255);

  • HSV

  • var col = new N6LHsv(1, 100, 0, 100, 100);

  • N6LHsv.Comp(rh)

  • 説明:比較

  • パラメータ:rh:N6LHsv:比較

  • 戻り値:ソースファイルを参照してください

  • N6LHsv.Equal(rh)

  • 説明:等しい場合

  • パラメータ:rh:N6LHsv:比較

  • 戻り値:true:false:

  • N6LHsv.Stra()

  • 説明:RGBA文字列へ

  • パラメータ:---

  • 戻り値:文字列

  • N6LHsv.Str()

  • 説明:RGB文字列へ

  • パラメータ:---

  • 戻り値 :文字列

  • N6LHsv.Parsea(str)

  • 説明:RGBA文字列から

  • パラメータ:文字列

  • 戻り値 :N6LHsv

  • N6LHsv.Parse(str)

  • 説明:RGB文字列から

  • パラメータ:文字列

  • 戻り値 :N6LHsv

  • N6LHsv.ToHsv(rh)

  • 説明:ARGB配列からAHSV配列へ

  • パラメータ:配列

  • 戻り値 :配列

  • N6LHsv.ToRgb(rh)

  • 説明:AHSV配列からARGB配列へ

  • パラメータ:配列

  • 戻り値:配列

  • N6LHsv.Add(rh, bh)

  • 説明:add

  • パラメータ:rh:bh

  • 戻り値:N6LHsv

  • N6LHsv.Sub(rh, bh)

  • 説明:sub

  • パラメータ:rh:bh

  • 戻り値:N6LHsv

  • N6LHsv.RgbGrd(div, cnt, rgb)

  • 説明:ARGBグラデーション

  • パラメータ:div:分割数:cnt:count:rgb:最終的なARGB配列

  • 戻り値:N6LHsv

  • N6LHsv.HsvGrd(div, cnt, hsv, sw)

  • 説明:AHSVグラデーション

  • パラメータ:div:分割数:cnt:count:hsv:最終的なAHSV配列:sw:グラデーションのショートカットまたは迂回方向

  • 戻り値:N6LHsv

目次に戻る