location.hash から値を取り出してオブジェクト型で返す Ajaxで使うかもしれない let obj = hash2obj ("http://hoge.com#label?a=123&b="); obj = { hash : '#label', id : 'label', value: { a: 123, b: undefined }, query : '?a=123&b=' } function hash2…

Smail Sever 解決する課題 サーバー変数が取得できない モジュール形式にすることでとりあえず回避 元号日付に対応していない $str = strftime ("%Ex", strtotime ($strDate));

十年来、行って手を合わせたかった場所にやっと行くことができた。 往復に700km。 宮城県の大川小学校だ。 津波で死んだ人たちに会いたかったからだ。 周りは工事中で騒がしい場所ではあったが、近くに慰霊の石碑があった。 足が悪いので雪道は勘弁。車の…

サーバーがなぜか使えなくなった。 有限会社 善光堂 曹洞宗 東長寺

<script> class P2{ constructor(x=0,y=0){this.x=x;this.y=y} get clone(){return new P2(this.x,this.y)}//複写 add({x=0,y=0},{x:X,y:Y}=this){this.x=X+x;this.y=Y+y;return this}//加算 sub({x=0,y=0},{x:X,y:Y}=this){this.x=X-x;this.y=Y-y;return this}//減算…

万年カレンダーJavaScriptで作る <meta charset="utf-8"> <title></title> <style> table { margin: 1em 0; } thead td { font-weight: bold; } thead td, tbody td { text-align: center; border: 1px transparent solid; } tbody td:hover:not(.pDay):not(.nDay) { border: 1px #f80 solid; } tr td:fi</meta>…

アロー関数で再帰

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 なぜか面白くない。 提示されたコードは見難い。なので最初から自分で好きなように書いた方が楽。 汚いコードを指摘してあげるより、私はこれが楽だ。 本当の意味でのショートコーディングは奥が深…

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 クラスの覚書 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) { const K = ['〇','一','二','三','四','五','六','七','八','九'], L = ['','十','百','千','万','億','兆','京','垓','𥝱','穣','溝','澗']; return(''+a).replace(/(\d+)/g,a=>{ if('0'==a)return'〇'; if(t)return…

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次元の木を描く フラクタルな図形を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…

マウスでドラッグすると回転します { 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 要素で連動する(年度指定も可) 年月日の入力を簡単にする。 マウスホイールにも対応。 年月日の範囲も指定可能。例:dateObj を [-7, 0, 10] の様な引数にすると、[一週間前, 今日, 10日後] の様な指定も可能。 使い方 chainD…

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

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

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 (); //すべてのセルを走…

クオータニオンを使ってマウスで回転 // target.addEventListener (n, this, false)); } //_________________________________________________________________ //各イベント処理 handleEvent (event) { let { type, pageX, pageY, target: e } = event; sw…

クオータニオンのメモ class Quaternion { constructor (w = 0, x = 0, y = 0, z = 0) { this.w = w; this.x = x; this.y = y; this.z = z; } add ({w, x, y, z}) { this.w += w; this.x += x; this.y += y; this.z += z; return this; } mult ({w, x, y, z}…

文字の色を虹色に変化させるスクリプトを書いてみた。またくだらないものを書いてしまった。 function getColor (n) { const M = 255; let c = n % 360 / 60 | 0; let x = n % 60 / 60 * M |0; let y = M - x; let [r,g,b]=[[M,0,y],[M,x,0],[y,M,0],[0,M,x]…

JavaScript 行列演算 let a =[[1,2], [3,4]]; let b =[[5,6], [7,8]]; let r =[[19,22] [43,50]]; //行列の加算 function add (a, i) { let b = this[i]; return a.map ((a, j) => a + b[j]); } //行列の減算 function sub (a, i) { let b = this[i]; return…