ClassMethod‐Japanese - NAS6mixfoolv/NAS6LIB GitHub Wiki
目次
- グローバルシンボル
- グローバルユーティリティ関数
- NAS6LIBクラス概要
- 型名メンバー
- N6LTimerMan
- N6LTimerMan.timer
- N6LVector
- N6LMatrix
- N6LQuaternion
- N6LLnQuaternion
- N6LKeyBoard
- N6LMassPoint
- N6LPlanet
- N6LRngKt
- N6LHsv
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