hikari
code:code.js
$('<p id="howto">').text('画面をタッチ').appendTo($('body'))
// 引力・斥力モデル
var num = 500;
var vx = new Array(num);
var vy = new Array(num);
var x = new Array(num);
var y = new Array(num);
var ax = new Array(num);
var ay = new Array(num);
var magnetism = 30.0; //引力の強さ マイナスにすると斥力になる。
var radius = 2 ; //描画する円の半径
var gensoku = 0.8; // 粒子の移動を減速させる
function setup(){
createCanvas(windowWidth,windowHeight);
noStroke();
fill(0);
ellipseMode(RADIUS);
background(0);
blendMode(ADD);
for(var i =0; i< num; i++){
}
}
function draw(){
fill(0,0,0);
rect(0,0,width,height);
for(var i=0; i<num; i++){
var distance = dist(mouseX, mouseY, xi, yi); //dist(x1,y1,x2,y2) 2点間の距離を求める関数 //加速度は引力の中心からの距離の二乗に反比例する。
if(distance > 3){ //あまりマウスに近すぎる場合は加速度を更新しない
axi = magnetism * (mouseX - xi) / (distance * distance); ayi = magnetism * (mouseY - yi) / (distance * distance); }
vxi += axi; // 1フレームあたりaxだけ速度vxを増加する。 vyi += ayi; // 1フレームあたりayだけ速度vyを増加する. xi += vxi; // 1フレームあたりvyピクセル進ませる。 yi += vyi; // 1フレームあたりvyピクセル進ませる。 var sokudo = dist(0,0,vxi,vyi); // 速度のX,Y成分から速度を求める var r = map(sokudo, 0, 5, 0, 255); //速度に応じた色を計算
var g = map(sokudo, 0,5, 64, 255);
var b = map(sokudo, 0,5, 128, 255);
fill(r, g, b, 16);
ellipse(xi,yi,radius,radius); }
}
code: hoge.js
helloworld;