書き逃げアンドロイド。

副交感神経が優位になるような写真が好き。

責任

2021年01月31日 12時38分02秒 | 意識論関連

プログラミング教育において重要なのは プログラミング言語そのものを覚えることではなく プログラミングをする時の論理的な思考能力を獲得することの方が重要である

プログラミング環境というのは日々進歩しており 今使えるプログラミング言語は将来主流ではなくなり キーボードで入力する形式自体が廃れてしまう可能性もある

C言語であれJavaScriptであれ たった一文字打ち間違えただけで全く動かないのであって 一度定義された「名前」ならドロップダウン形式の中から選択する形式にするだけで「名前」の打ち間違えなんぞ起こることはなくなるのである

プログラミングにおける「名前」とは 変数とか関数につける「名前」のことである

変数だの関数だのという言葉遣いをしてしまうと 数学嫌いの人の拒絶反応を引き起こしそうなのだが 実は数学ができなくてもプログラミングはできる 実際オイラは中学生レベルの数学すらあやふやなレベルである

あと 現状のプログラミング言語では英数小文字だけで組み上げられているので 一見すると英語能力も必要なんじゃなかろうかと錯覚を促すが 実際にはオイラは英語の文章なんぞ全く読めない

数学的に難しいプログラミングをするなら数学のスキルも必要になるのだが 簡易的な重力計算くらいならピタゴラスの定理程度を「知っている」レベルで充分である

別に「ピタゴラスの定理の証明」なんぞできなくても構わない

しかし 逆に言うと 純粋数学において用途がよくわからないままピタゴラスの定理を教え込まれても テストで点数がもらえるだけでは主体的な意欲にはつながらず テストが終わるとすぐに忘れてしまうことも多いのだが 実際にプログラミングで重力の影響による物体の軌道が視覚的に見れたりすれば主体的興味を持つ人は少なくないのではないか

いや 別に持たなくても良いんだけど

ヒューマンフォールフラットなんかは重力計算とか多重振り子計算的なものを応用しているわけで 画面がシンプルなのは動きの計算にCPU資源を必要とするために物体の形状データを減らしているためではないかと思われる

違うかも知れんが

単にわざとプリミティブな形状にしているだけかも知れない

何にせよ 学習とか研究というものは主観的に面白がること 興味を持つことが重要である 点数評価という「他者から与えられる脳への報酬」を目的にしてしまうと 点数評価をしてくれる他者に依存した環境依存性による意欲しか働かなくまってしまうため 他人の評価に左右されて主体性というものが失われてしまうことになる

主体性のない奴というのは自律もない

「いいね」欲しさに悪乗り投稿をやらかしたりするようにもなるのである

既存の学術権威が間違ったことを主張していても 評価点数が目的であれば論理的根拠のない「悟性」だの「純粋統覚」だの 終いにゃ実証不能の謎の「叡智界」なんぞも鵜呑みにするバカの集団が出来上がるのである

それがどれだけ学問を汚し 社会的損失になっているのかも誰も検証することはなくなる

他人からの評価点数に左右されずに 「これって どうしてこうなってるんだろうか?」という素朴で主体的な疑問に取り組むことで 多くのヒトが気づくことのない発見や発明にも結びつく可能性が出てくるのである

しかし 教えられたことをただ鵜呑みにしているだけであれば どんなに大量の知識を「知って」いても 糞の役にも立たないデクノボウが出来上がるだけである

たとえ知識の量をひけらかして大衆人気を得たとしても 「知識のエコシステムを生態系のピラミッドになぞらえれば」などという 訳のわからぬ実証不能の観念を振り回すオカルト野郎が出来上がるだけである

それは大衆人気で金儲けくらいにはなるだろうが 実際には学問を逸脱したオカルト以外の何物でもない

マナー産業によるデマ同様 知識産業とか教養産業とか受験産業の金儲けを目的としたデマにも気づくことはできず 漫然と現状社会の問題点もスルーして鵜呑みにするバカにしかならない

なぜ知識や教養を身につけなくてはならないのか その動機が「世間的評価」であれば「知識のエコシステムを生態系のピラミッドになぞらえ」ることによって 利己的利益の追求や 生存競争に対する強迫観念しか働かなくなることになる

それ 人間性や倫理に適するとお思いか?

福沢諭吉は「人には身分というものがある」などと称して学問をススメたが これは利己的利益のために学問をススメているだけの学問産業の推進であって 「天は人の上に人を作らず」という言葉は 単なる引用であって 諭吉自身は「身分」という上下順位序列を否定してはいないことになる

「身分」が高ければ利己的「生存」にとっては有利であろう

気分的には安心することができるであろう

しかし それで社会安全性や持続可能性が高まる保証には全くならないばかりか むしろ危険性の放置にしかつながることはない

間違った話を鵜呑みにしておいて 安全な訳がなかろう

感染症対策にせよ 温室効果ガス削減にせよ これらに必要なのは「生態系のピラミッド」ではなく むしろ「多様性」の方である

全員が均一にバカなら バカげた結末にしか至らないからである

たった一人でも「これ 何か違くね?」と気付き それを皆が理解すればバカげた結末から逃れることも可能となる

特定の「身分」の高い人物だけが社会の安全性や持続可能性を高めてくれるわけではなく 一人一人の個人による自律的な社会的責任判断選択こそが 感染症や地球環境変動に対して最も重要なのであり 個人が利己的な生存を優先することよりも むしろ次世代のために自らの犠牲もいとわない本質的人間性 倫理というものが求められるのである

ヒトは その先天的な「社会形成習性」によって 特定権威などに責任を丸投げしておけば気分的には安心することができるのだが その主観的な安心満足には安全性の保証は全くない

かつて祖先が遺伝的進化した「結果」として組み込まれた先天的本能習性というものは かつての狩猟採集生活に適応したものであって それが現代社会においては逆効果な「人間としての欠陥」として働いていることも認識しなければならない

そもそも「狩猟採集生活に適応した」とは言っても それは結果的に「生存にとって適応した」という「結果」でしかないのであり そこに人間性や倫理という「目的」が伴う構造原理も保証も何もないのである

頭の悪い生物学者共が「ヒトには先天的に人間性が組み込まれているはずだ」などという リチャード:ドーキンスのお伽話に基づいた話でもしておけば 論理検証のできないバカな文科系マスコミや大衆を気分的 観念的に満足させることは可能だが それこそが主観が促す錯覚というものである

科学は多数決ではないのと同様 哲学もまた多数決で真理が見極められるわけではない

社会安全性や持続可能性にとって最も重要なものが何なのか その「真理」を見極めようとしなければ 間違った行動にしか陥らないのは必然というものである

「世界は存在しない」だとか「時間は無限に分割すればなくなる」などという糞みたいな屁理屈を「新時代の哲学」などとおだてあげて満足している現状の哲学界というのは その時点で組織腐敗としか言いようがない

遺伝的進化というものが単なる結果であって 目的の論証にならないことを認識していれば 優生学などというオカルト観念の明確な論理反証も周知されていたはずであり これを怠ったことで相模原障害者施設津久井やまゆり園虐殺事件の引き金ともなったのであり

現状の遺伝的進化に対する誤謬を放置した生物学界の無責任はもとより それに対して一切何も批判してこなかった哲学界もまた同罪である

言っておくが それらに一切批判してこなかったあらゆる人にもその責は存在するのである

ヒトは 多数が無責任なら自分の責任が薄まるような感覚(錯覚)を感じるものであるが その錯覚を 錯覚として自覚する当人の意識(客観的論理検証性)がないからバカが治らない

バカのままなら自滅するぞ

それは私の責任じゃないからな

 

 

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

教養

2021年01月29日 13時39分13秒 | 意識論関連

オルテガ:イ:ガセットは形式や手続きを踏襲することこそが人間性や倫理であるかのように述べたが

これは根拠のないデマである

形式や手続きを踏襲しておけば ヒトは主観的に安心感が得られるため この安心感を安全性や人間性と錯覚する習性があるため オルテガのデマに誰も気づかず 短絡的に鵜呑みにしているに過ぎない

従って オルテガも哲学ですらなく むしろ誹謗中傷を煽る大衆迎合に他ならない

現状の哲学界はオルテガだのカントだのニーチェだのといった論理的根拠を伴わぬ単なる主観的満足安心を得られる話を鵜呑みにしているバカの集団であり 既にマイケル:サンデルやマルクス:ガブリエルのような大嘘つきが権威扱いされているのであって これこそが「学問を汚している」状態なのである

バカな哲学者や文系の学者共は「古典は普遍性を持っている」などと言い出すことがあるが ヒトという種に見られる普遍的な錯覚をどんなに並べても 錯覚が錯覚ではないことの論証には一切ならない

教育系ユーチューバーに対する根拠のない誹謗中傷が起きるのも 旧来の手続きや形式を脱構築(革新)することに対する主観的拒絶反応に過ぎず バカ丸出しとしか言いようがない

ヒトという種の生物は 革新的な脱構築性に対して反射的に拒絶反応を示し 機械手続き的形式に則った因習を継続することばかりに中毒に陥る習性がある

ガリレオ・ガリレイによる地動説に対し 「火炙り」などという暴力的懲罰によって黙らせようとしたことも ヒトという種の生物における先天的錯覚が促した「失敗」である

「失敗」は その構造原理を論理的に究明することによって 「失敗」に陥らないよう教訓として知識財産にすることも可能だが ヒトの多くは他人の「失敗」は自分には関係がないものだと身勝手な過信をすることで安心し 自分の行動にフィードバックするという謙虚さを持とうとはしないものである

ヒトとは そういう残念な生き物に過ぎないことを自覚していれば 過去に犯した様々な「失敗」から学び 同じような原因によって引き起こされる様々な失敗(人災への危険性)を回避することが可能となる

これこそが本当の「教養」というものであって 「カップ麺が売れた本当の理由がわかるかどうか」などというバカみたいな基準を持ち出している時点で むしろ「教養」が著しく欠けたバカとしか言いようがない

「マナー産業」が金儲けのためにデマをでっち上げるのと同様 「教養産業」が金儲けのためにデマをでっち上げることはよくある手口である

その一方で「メディアリテラシー」などと称して 読み手の方に嘘やデマを見抜く責任を丸投げしておけば 金儲けのためならどんなデマや嘘を展開しても許される免罪符のように使っているのである

何が嘘で 何が真実なのかを区別認識できなければ どんなに大量の情報を「知って」いても人間としての「知能」としては機能することはない

読書猿がどんなに大量の知識を「知って」いても 「知識のエコシステム」などという意味不明な実証不能の謎の観念を持ち出し あたかも知識の量さえあれば生態系の頂点に君臨できるかのような錯覚を「脳への報酬」として独習を促しても 出来上がるのはただのバカに過ぎない

「東大教授のお墨付き」などと言っても 東大教授という肩書だけでは糞も味噌も一緒くたであり 何せ養老孟司を「名誉教授」にしている大学であり そんな肩書は糞の役にも立たないことを知るべきである

 

 

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

殺意

2021年01月29日 00時52分50秒 | 意識論関連

教育系ユーチューバー葉一氏に対して「教育を汚すな」などというトンチンカンも甚だしい誹謗中傷をするバカがいるという

松沢哲郎とか東大の養老孟司とかハーバード大学のマイケル:サンデルの方がよっぽど学問を汚しているのに 気づかないバカに限って訳のわからぬヘイトスピーチを始めるものである

死ねば良いのに マジで

 

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

安定軌道

2021年01月28日 22時42分26秒 | 日記

円軌道は予測できるんだけど

筆記体の「L」みたいな軌道とか

振り子みたいな軌道でも安定することがある

現実には存在しない重力勾配なので

謎の安定軌道に落ちることがある

円軌道とは言っても 領域全体に下向きの重力があるので下膨れで安定する

あ 軌道を記録できるようにしてみたよ

http://srand4000.seesaa.net/article/479748446.html

でもキーボードのカーソルキーじゃないと安定軌道に落とすのはムリゲーかも

 

 

SeesaaブログはSSL化されていないのでコメントも書かない方が無難だと思う

編集画面はちゃんとSLL化されている

スマホページは広告がヒドい

基本的に縦画面で見るように設計されているんだと思う

 

Chromeが拒絶する程の広告

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

DualGravity

2021年01月27日 23時02分19秒 | 日記

DualGravity

表示領域中央に引力持たせてみた

結果的に二重振り子みたいな動きになった

以前二重振り子作ろうと思って挫折したことあるので 何かうれしい

タイミング良く左⇦カーソルキーで減速させると円軌道に近くすることもできる

失敗するとスイングバイ起こして吹っ飛んてゆくけど 速度制限させているので大丈夫

結局 オイラはゲームにあんま興味がないので インスタレーション的なものになった

Android8.1上のChromeでは動作確認できているけど

他の環境で動くかどうかはわからない

 

 

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

startUp04

2021年01月27日 22時40分35秒 | 日記

startUp04

<font color="red">
<input type="button" value="Up" onclick="clickBtnUp()"/> <br>
size: <div id="div01"> </div>
<input type="button" value="Down" onclick="clickBtnDw()"> <font> <br>
<canvas width="550" height="550" id="startUp02" style="background-color:rgba(255, 255, 255, 1.0);"> </canvas>

<script>
var doc01= document.getElementById("div01")
var canvas = document.getElementById('startUp02');
var context = canvas.getContext('2d');
var x = 20;
var y = 20;
var size = 5;
var vect_x = 1;
var vect_y = 1;
var vx, vy;
var vg;
const center_x = canvas.width/2;
const center_y = canvas.height/2;

var rightPressed = false;
var leftPressed = false;

document.addEventListener("keydown", keyDownHandler, false);
document.addEventListener("keyup", keyUpHandler, false);

function keyDownHandler(e) {
    if(e.key == "Right" || e.key == "ArrowRight") {
         rightPressed = true;
    }
    else if(e.key == "Left" || e.key == "ArrowLeft") {
        leftPressed = true;
    }
}
function keyUpHandler(e) { if(e.key == "Right" || e.key == "ArrowRight") {
    rightPressed = false;
    }
else if(e.key == "Left" || e.key == "ArrowLeft") {
    leftPressed = false;
    }
}

function clickBtnUp(){
    size += 5;
    doc01.innerHTML = size;
}

function clickBtnDw(){
    if(size > 5){
        size -= 5;
    }
    doc01.innerHTML = size;
}

function draw(){
    context.globalCompositeOperation = "source-over";
    context.fillStyle = "black";
    context.globalAlpha = 1.0;
    context.fillRect(0, 0, canvas.width, canvas.height);

    context.beginPath();
    context.globalCompositeOperation = "lighter";
    context.fillStyle = "white";
    context.globalAlpha = 0.5;
    context.arc(x, y, size, 0, Math.PI*2, false);
    context.arc(center_x, center_y, 2, 0, Math.PI*2, false);
    context.fill();

    vg = Math.pow(center_x - x, 2) + Math.pow(center_y - y, 2);
    vg = 1 / vg;
    vx = (center_x - x) * vg*100;
    vy = (center_y - y) * vg*100;
    vect_x += vx;
    vect_y += vy;

    x += vect_x;
    y += vect_y;
    vect_y=vect_y + 0.25;

    if(x < 0 + size){
        x = size; 
        vect_x *= -1;
        if(vect_x>50)vect_x=50;
    }
    if(x > canvas.width - size){
        x = canvas.width - size;
        vect_x *= -1;
        if(vect_x>50)vect_x=50;
    }
    if(y < 0 + size){
        y = size;
        vect_y = 0;
    }
    if(y > canvas.height - size){
        y = canvas.height-size;
        vect_y *= -1;
    }

    if(rightPressed && vect_x
        vect_x *= 1.125;
        vect_y *= 1.125;
    }
    if(leftPressed){
        vect_x /= 1.125;
        vect_y /= 1.125;
    }
    context.fillStyle = "red";
    context.font="20px sans-serif";
    context.fillText("x: "+x+" ", 20, 30, 500);
    context.fillText("y: "+y+" ", 20, 50, 500);
    context.fillText("vect_x: "+vect_x+" ",20, 70, 500);
    context.fillText("vect_y: "+vect_y+" ",20, 90, 500);
}
setInterval(draw,32);
</script>


Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

インタラクティブ

2021年01月27日 12時15分36秒 | 日記

何かゲーム的なものでも作れないかなと思って

こういうのをこさえてみた

⇨のカーソルキーで2倍に加速

⇦のカーソルキーで速度が半減する

画面上の「UP」「DOWN」ボタンで玉の大きさが変わる

で 実際に操作してみると 加速しすぎて表示範囲からはみ出し過ぎちゃって元に戻らなくなるバグがあった

表示範囲をはみだし過ぎると vect_x vect_y の符号を反転させても表示範囲に戻れず

表示の外から戻れなくなるのだ

なので戻れるように修正したのが⇨これ

まだゲームにはなってないけど

何かゲーム要素をつけてみようか

それとも別のインスタレーション的なものにしようか

考え中

 

 

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

startUp03

2021年01月27日 10時23分18秒 | 日記

startUp03

<font color="red">
<input type="button" value="Up" onclick="clickBtnUp()"/> <br>
size: <div id="div01"> </div>
<input type="button" value="Down" onclick="clickBtnDw()"> <font> <br>
<canvas width="550" height="550" id="startUp02" style="background-color:rgba(255, 255, 255, 1.0);"> </canvas>

<script>
var doc01= document.getElementById("div01")
var canvas = document.getElementById('startUp02');
var context = canvas.getContext('2d');
var x = 20;
var y = 200;
var size = 5;
var vect_x = 1;
var vect_y = 1;

var rightPressed = false;
var leftPressed = false;

document.addEventListener("keydown", keyDownHandler, false);
document.addEventListener("keyup", keyUpHandler, false);

function keyDownHandler(e) {
    if(e.key == "Right" || e.key == "ArrowRight") {
         rightPressed = true;
    }
    else if(e.key == "Left" || e.key == "ArrowLeft") {
        leftPressed = true;
    }
}
function keyUpHandler(e) { if(e.key == "Right" || e.key == "ArrowRight") {
    rightPressed = false;
    }
else if(e.key == "Left" || e.key == "ArrowLeft") {
    leftPressed = false;
    }
}

function clickBtnUp(){
    size += 5;
    doc01.innerHTML = size;
}

function clickBtnDw(){
    if(size > 5){
        size -= 5;
    }
    doc01.innerHTML = size;
}

function draw(){
    context.globalCompositeOperation = "source-over";
    context.fillStyle = "black";
    context.globalAlpha = 1.0;
    context.fillRect(0, 0, canvas.width, canvas.height);

    context.beginPath();
    context.globalCompositeOperation = "lighter";
    context.fillStyle = "white";
    context.globalAlpha = 0.5;
    context.arc(x, y, size, 0, Math.PI*2, false);
    context.fill();

    x += vect_x;
    y += vect_y;
    vect_y=vect_y + 0.25;

    if(x < 0 + size){
        x = size; 
        vect_x *= -1;
        if(vect_x>50)vect_x=50;
    }
    if(x > canvas.width - size){
        x = canvas.width - size;
        vect_x *= -1;
        if(vect_x>50)vect_x=50;
    }
    if(y < 0 + size){
        y = size;
        vect_y = 0;
    }
    if(y > canvas.height - size){
        y = canvas.height-size;
        vect_y *= -1;
    }

    if(rightPressed && vect_x
        vect_x *= 1.125;
        vect_y *= 1.125;
    }
    if(leftPressed){
        vect_x /= 1.125;
        vect_y /= 1.125;
    }
    context.fillStyle = "red";
    context.font="20px sans-serif";
    context.fillText("x: "+x+" ", 20, 30, 500);
    context.fillText("y: "+y+" ", 20, 50, 500);
    context.fillText("vect_x: "+vect_x+" ",20, 70, 500);
    context.fillText("vect_y: "+vect_y+" ",20, 90, 500);
}
setInterval(draw,32);
</script>


Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

やらない理由

2021年01月27日 10時14分25秒 | 日記

速度超過は事故起こした時に被害が大きいんだから

GPSとかETCと連動させて自動的に速度制限したらよかろうと

鉄道ならATS的なものがあるんだから 自動車やバイクでもやりゃ良いだろうと

やらない理由が特にないと思うぞ

信号だって黄色になるタイミングと距離から自動停止させても良かろうと

信号が赤になりそうだからって加速するバカも減るだろうと

まだ新型コロナウイルスの死者よか交通事故の死者の方が多いんだから

交通事故対策の方が優先順位が高いと思うけどな

 

 ◇追記:交通事故死亡者は年間3000人台にまで減少していました

充分多いけどね


Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

startUp01

2021年01月26日 12時02分20秒 | 日記

startUp01

<canvas width="450" height="350" id="startUp01" style="background-color:rgba(255, 255, 255, 1.0);"></canvas>

<script>
var canvas = document.getElementById('startUp01');
var context = canvas.getContext('2d');
var x = canvas.width / 2;
var y = canvas.height / 2;
var size = 5;
var vect_x = 1;
var vect_y = 1;

function draw(){
    context.globalCompositeOperation = "source-over";
    context.fillStyle = "black";
    context.globalAlpha = 1.0;
    context.fillRect(0, 0, canvas.width, canvas.height);

    context.beginPath();
    context.globalCompositeOperation = "lighter";
    context.fillStyle = "white";
    context.globalAlpha = 0.5;
    context.arc(x, y, size, 0, Math.PI*2, false);
    context.fill();

    x += vect_x;
    y += vect_y;

    if(x < 0 || x > canvas.width){
         vect_x *= -1;
    }
    if(y < 0 || y > canvas.height){
         vect_y *= -1;
    }
}
setInterval(draw,32);
</script>

 

実行サンプル -Seesaaブログ

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ステレオ雪

2021年01月24日 15時37分27秒 | 日記

ステレオ雪(改)

Seesaaブログだと記事領域の幅に制限があるので縦方向に視差をつけてみた

ので OSの画面自動回転機能をオフにしてからスマホやタブレットを横にして見てね

現在はPC等には対応していないので とりあえず諦めて

PCに詳しい人に聞けばオフラインで実行する方法も知っているはず

改造すれば横並びにもできるんだけど

オイラの知識は結構偏ってるので あんま説明はしたくないのよね

オイラはPC持ってないし

PCだったらテキストエディタでHTMLファイル保存してブラウザから開けば動くはずなんだけど

ブログ同様に...タグ内にコピペすれば動くはず

今NetscapeComposerってあるのかしら なくてもテキストエディタでナントカなるとは思う

拡張子 *.txt でしか保存できなくても  ファイルマネージャー的なもので拡張子を *.html に書き換えれば良いだけ

のはず

ってか最近のPCって拡張子書き換えられんのかしら

書き換えられるとしても手順がめんどいのかも

知らんけど

いや 本当に知らないのよ 最近のPCのことは

ググった方が良いかも

出てくるかなぁ…

意外と出てこないことあるのよね…

 


Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

snow06s2 Backup

2021年01月24日 14時06分05秒 | 日記

snow06s2

<canvas width="500" height="320" id="snow_06sr" style="background-color:rgba(255, 255, 255, 1.0);"> </canvas>

<canvas width="500" height="320" id="snow_06sl" style="background-color:rgba(255, 255, 255, 1.0);"> </canvas>

<script>
var canvas_r = document.getElementById('snow_06sr');
var canvas_l = document.getElementById('snow_06sl');
var context_r = canvas_r.getContext('2d');
var context_l = canvas_l.getContext('2d');
const PARTICLE = 400;
const rate = 1.005;
const center_x = canvas_r.width / 2;
const center_y = canvas_r.height / 2;

var x = new Array(PARTICLE);
var y = new Array(PARTICLE);
var size = new Array(PARTICLE);
for(let ti = 0 ; ti < PARTICLE ; ti++){<br />    x[ti] = Math.random() * canvas_r.width;
    y[ti] = Math.random() * canvas_r.height;
    size[ti] = (Math.random() + 0.001) * 60 ;

var tmp;
}

function draw(){
    context_r.globalCompositeOperation = "source-over";
    context_l.globalCompositeOperation = "source-over";
    context_r.fillStyle = "rgb(15,15,31)";
    context_l.fillStyle = "rgb(15,15,31)";
    context_r.globalAlpha = 1.0;
    context_l.globalAlpha = 1.0;
    context_r.fillRect(0, 0, canvas_r.width, canvas_r.height);
    context_l.fillRect(0, 0, canvas_l.width, canvas_l.height);

    for( var i=0 ; i<PARTICLE ; i++ ){<br />        context_r.beginPath();
        context_l.beginPath();
        context_r.globalCompositeOperation = "lighter";
        context_l.globalCompositeOperation = "lighter";
        tmp = size[i] - 20.0;
        tmp=Math.abs(tmp);
        context_r.fillStyle = "white";
        context_l.fillStyle = "white";
        context_r.globalAlpha = 1.0 / Math.pow(tmp+1.0, 1.8);
        context_l.globalAlpha = 1.0 / Math.pow(tmp+1.0, 1.8);
        
        context_r.arc(x[i], y[i], tmp + 1.0, 0, Math.PI*2, false);
        context_l.arc(x[i], y[i] - size[i], tmp + 1.0, 0, Math.PI*2, false);
        context_r.fill();
        context_l.fill();

        x[i] += (x[i] - center_x) * size[i] * 0.0001;
        y[i] += (y[i] - center_x) * size[i] * 0.0001;
        size[i] *= rate;

        if(x[i]<0 || x[i]>canvas_r.width || y[i]<0 || y[i]>canvas_r.height){
           x[i] = Math.random() * canvas_r.width;
           y[i] = Math.random() * canvas_r.height;
           size[i] = 0.5;
        }
    }
}
setInterval(draw,16);
</script>

 

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

バックアップ snow6s1

2021年01月23日 14時02分48秒 | 日記

snow06s1

<div> <canvas width="500" height="500" id="snow_06" style="background-color:rgba(255, 255, 255, 1.0);"> </canvas> </div>

<script>
var canvas = document.getElementById('snow_06');
var context = canvas.getContext('2d');
const PARTICLE = 1000;
const rate = 1.005;
const center_x = canvas.width / 2;
const center_y = canvas.height / 2;

var x = new Array(PARTICLE);
var y = new Array(PARTICLE);
var size = new Array(PARTICLE);
for(let ti = 0 ; ti < PARTICLE ; ti++){<br />    x[ti] = Math.random() * canvas.width;
    y[ti] = Math.random() * canvas.height;
    size[ti] = (Math.random() + 0.001) * 60 ;

var tmp;
}

function draw(){
    context.globalCompositeOperation = "source-over";
    context.fillStyle = "rgb(15,15,31)";
    context.globalAlpha = 1.0;
    context.fillRect(0, 0, canvas.width, canvas.height);

    for( var i=0 ; i<PARTICLE ; i++ ){<br />        context.beginPath();
        context.globalCompositeOperation = "lighter";
        tmp = size[i] - 20.0;
        tmp=Math.abs(tmp);
        context.fillStyle = "white";
        context.globalAlpha = 1.0 / Math.pow(tmp+1.0, 1.7);
        
        context.arc(x[i], y[i], tmp + 1.0, 0, Math.PI*2, false);
        context.fill();

        x[i] += (x[i] - center_x) * size[i] * 0.0001;
        y[i] += (y[i] - center_y) * size[i] * 0.0001; 
        size[i] *= rate;

        if(x[i]<0 || x[i]>canvas.width || y[i]<0 || y[i]>canvas.height){
           x[i] = Math.random() * canvas.width;
           y[i] = Math.random() * canvas.height;
           size[i] = 0.5;
        }
    }
}
setInterval(draw,16);
</script>

 

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ソースコードのバックアップ

2021年01月23日 12時15分25秒 | 日記

ゆらゆら

<canvas width="500" height="500" id="sumple" style="background-color:rgba(0, 42, 42, 1.0);"> </canvas>

<script>

var canvas = document.getElementById('sumple');
var context = canvas.getContext('2d');
var x = canvas.width/2;
var y=canvas.height/2;
var vect_x=0;
var vect_y=0;

function test() {
    (function circle_animation() {
        context.globalCompositeOperation = "source-over";
        context.fillStyle = "rgba(0, 0, 0,0.01)";
        context.fillRect(0,0,canvas.width,canvas.height);

        context.globalCompositeOperation = "lighter";
        context.beginPath();
        context.arc(x, y, 12, 0, 2*Math.PI, false);
        context.fillStyle = 'rgb(0,15,15)';
        context.fill();

        vect_x+=Math.random()-0.5;
        x+=vect_x;
        vect_x+=(canvas.width/2-x)/2048;
        vect_x*=0.97;

        vect_y+=Math.random()-0.5;
        y+=vect_y;
        vect_y+=(canvas.height/2-y)/2048;
        vect_y*=0.97;

        requestAnimationFrame(circle_animation);
    })();
}

test();

 

</script>

snow06

<canvas width="500" height="500" id="snow_06" style="background-color:rgba(255, 255, 255, 1.0);"> </canvas>

<script>

var canvas = document.getElementById('snow_06');
var context = canvas.getContext('2d');
const PARTICLE = 100;
const rate = 1.005;
const center_x = canvas.width / 2;
const center_y = canvas.height / 2;

var x = new Array(PARTICLE);
var y = new Array(PARTICLE);
var size = new Array(PARTICLE);
for(let ti = 0 ; ti < PARTICLE ; ti++){<br />    x[ti] = Math.random() * canvas.width;
    y[ti] = Math.random() * canvas.height;
    size[ti] = (Math.random() + 0.001)/20 ;

var tmp;
}

function draw(){
    context.globalCompositeOperation = "source-over";
    context.fillStyle = "black";
    context.globalAlpha = 1.0;
    context.fillRect(0, 0, canvas.width, canvas.height);

    for( var i=0 ; i<PARTICLE ; i++ ){<br />        context.beginPath();
        context.arc( x[i], y[i], size[i] + 0.3, 0, Math.PI*2, false);
        context.globalCompositeOperation = "lighter";
        context.globalAlpha = 1 / Math.pow(size[i] + 1.0, 0.2);
        //context.globalAlpha = 0.7;
        context.fillStyle = "white";
        context.fill();

        //x[i] += (x[i] - center_x) * size[i] * 0.0001;
        tmp = x[i] - center_x;
        tmp *= size[i];
        tmp *= 0.001;
        x[i] += tmp;
        
        //y[i] += (y[i] - center_y) * size[i] * 0.0001; 
        tmp = y[i] - center_y;
        tmp *= size[i];
        tmp *= 0.001;
        y[i] += tmp;

        size[i] *= rate;

        if(x[i]<0 || x[i]>canvas.width || y[i]<0 || y[i]>canvas.height){
           x[i] = Math.random() * canvas.width;
           y[i] = Math.random() * canvas.height;
           size[i] = 0.01;
        }
    }
}
setInterval(draw,16);

</script>

色残像錯視

<canvas id="w_Canvas" width="600" height="400"> </canvas>

<script>

var canvas = document.getElementById('w_Canvas');
var context = canvas.getContext("2d"); 
var img01 = new Image();
    img01.src = "https://...X_or.jpg";
var img02 = new Image();
    img02.src = "https://...BnW.jpg";
var counter=20;
var photo_number=0;

function draw(){
    if(counter < -10){
        counter=20;
    }
    if(counter>0){
        context.drawImage(img01, 0, 0);
        context.textAlign = "right";
        context.fillText(counter, 300, 200);
    }
    if(counter<=0){
        context.drawImage(img02, 0, 0);
    }
    counter--;
}
setInterval(draw, 1000);

</script>

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

2021年01月23日 10時56分43秒 | 日記

雪降らせてみた

 snow6 (Seesaa版)

今回は背景を真っ黒にした

表示される広告によってはCPUとられて動きにムラが出ることがある

ので ソースコードからJavaScriptだけ抜き出してHTMLファイルこさえてオフラインで実行すれば動きのムラはなくなると思う

AndroidOSでできるのかはわからんが

5,000円くらいで中古Mac売ってねぇかな

何でも良いけど オイラの環境(Android8.1 Chrome)だとタブが閉じられなくなる 右にスワイプすれば閉じられる 一瞬ビビるけどOS自体はちゃんと応答するので大丈夫だと思う

知らんけど

 

 

Ende;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする