2020-01-01から1年間の記事一覧

アロー関数で再帰

JavaScript アロー関数で再帰 有ろうことか!アロー関数で再帰ができるとは知らなかった。 let func = ((cbFunc = arg=> { ... }) => cbFunc)() const fibonacci = ((fb= n=> n > 1 ? fb(n-2) + fb(n-1): n)=> fb)(); console.log(fibonacci (9));//-> 34 </script>ア…

時間を遅らせてコールバック関数を起動する

時間を遅らせてコールバック関数を起動する class DelayCBFunc { constructor (cbfunc, time = 500 /*ms*/) { this.cbfunc = cbfunc; this.time = time; this.tmid = null; this.disabled = false; } restart (...args) { this.stop (); this.tmid = setTime…

SELECTの連携を今更ながら書いてみた

寺尾で答えてみた https://teratail.com/questions/310078 なぜか面白くない。 提示されたコードは見難い。なので最初から自分で好きなように書いた方が楽。 汚いコードを指摘してあげるより、私はこれが楽だ。 本当の意味でのショートコーディングは奥が深…

PerlinNoise

class PerlinNoise { constructor (random = Math.random) { this.random = random; this.gradient = new Map; } randomGradient (x) { if (! this.gradient.has (x)) this.gradient.set (x, this.random () * 2 -1); return this.gradient.get (x); } noise…

PHP クラスの覚書

PHP クラスの覚書 a = $a; …

順列を求める

Javascriptで順列を求める 考えたコード function permutations (ary = [ ], r = ary.length) { function recursion (ary, r, A = []) { if (r == 0) return ary.map (a=> A.concat(a)); let result = []; for (let i = 0; i < ary.length; i++) { let aaa =…

パーリンノイズ

パーリンノイズ 参考URL https://mrl.cs.nyu.edu/~perlin/doc/oscar.html https://github.com/a-i-to/perlin-noise-sample GitHubから引用 function PerlinNoise(random) { if (random) { this._random = random; } else { this._random = Math.random; } th…

JavaScriptで数値を漢数字に変換する

俺様仕様。 使おうと思ったらまともに動かなかった!なんで? ということで書き直した。 動かしているうちに短くなってしまった もう少し煮詰めれば、さらに短くなりそうなのだけれど… 今日は終了! function kansuji(a,t=0,r='',N=[...'〇一二三四五六七八…

JavaScript class memo

JavaScript class memo //ECMAScript2015: class class A { constructor (a, b) { Object.assign (this, {a, b}); this._val = null;//暗黙に内部変数 } get value () { return this._val; } set value (val) { this._val = val; } get clone () { let {a, b…

視野変換の覚書

視野変換 視野変換のための行列を得る 必要となる座標・空間ベクトル 目の位置 注視している位置 視線ベクトル 視線ベクトルの頭上方向のベクトル Z軸について 視線ベクトルの長さ 視線ベクトルのノルム(単位ベクトル)をZ軸周りのベクトルとする X軸につい…

フラクタルを利用して3次元の木を描く

フラクタルを利用して3次元の木を描く フラクタルな図形を2次元から3次元にするにあたり、空間ベクトルの向きを変えるのに苦労してしまった。 基本的な考えとしては、まず枝となる空間ベクトルのYの値を無視してXZ面で90度回転し、枝に対して水平に直行…

オブジェクト指向でフラクタルの木を描画する

オブジェクト指向でフラクタルの木を描画する マウスのドラッグで回転する class CG { constructor (canvas, offset = new P2) { this.canvas = canvas; this.offset = offset; this.ctx = canvas.getContext ('2d'); canvas.width = canvas.clientWidth; ca…

マウスでドラッグすると3D回転します

マウスでドラッグすると回転します { class CG { constructor (canvas, offset = new P2) { this.canvas = canvas; this.offset = offset; this.ctx = canvas.getContext ('2d'); canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; …

オブジェクト指向的なフラクタルの木の描画

{ class CG { constructor (canvas) { this.canvas = canvas; this.ctx = canvas.getContext ('2d'); canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; } line (x0 = 0, y0 = 0, x1 = 0, y1 = 0, color = "black") { let { ctx } =…

年・月・日の入力を SELECT 要素で連動する(年度指定も可)

年・月・日の入力を SELECT 要素で連動する(年度指定も可) 年月日の入力を簡単にする。 マウスホイールにも対応。 年月日の範囲も指定可能。例:dateObj を [-7, 0, 10] の様な引数にすると、[一週間前, 今日, 10日後] の様な指定も可能。 使い方 chainD…

山形県の水族館

くらげ その2 くらげ いそぎんちゃく

sin , cos の値を計算で求めるアルゴリズム

sin , cos の値を計算で求めるアルゴリズム var sin_cnt = 0, cos_cnt = 0; function sin (x) { let s = x, y = -x*x, b = 1, i = 1, r = x, m; do { sin_cnt++; m = r; r += (s*=y) / (b *= ++i*++i); } while (m - r); return r; } function cos (x) { let…

クオータニオンを JavaScript で!!

クオータニオンを JavaScript で!! コンピュータ・グラフィックを計算すときに、回転は付きものだ。 勉強しているうちに「クオータニオンで回転」が出てきた。 まず、それを学んだ結果を記録する クオータニオンとは それは「数」であり、「超複素数」である…

MySQL で相関係数を求める

MySQL で相関係数を求める その前に予習 平均: 母分散:標準偏差:変動係数: 単回帰分析 相関係数:単回帰式:回帰係数: MySQL table name x y 標準偏差を求める SELECT name, ROUND(AVG(x),2) AS "平均(x)", ROUND(AVG(y),2) AS "平均(y)", ROUND(VAR_PO…

JavascriptでcolSpanやrowSpanが含まれたテーブルの特定のセルの相対的なインデクス(cellIndex)を調べる

function cellsIndex (table = document.querySelector ('table')) { let rows = table.tHead ? table.tHead.rows: [table.rows[0]],//tHeadの全てor tBodyの最初の行 rst = new Map, buf = [ ]; if (! rows.length) throw new Error (); //すべてのセルを走…