角度で色が変わる(加速度)

スマホの角度で色が変わります

<!DOCTYPE html>
<html>
<head>
<title>touch color</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<!-- metaタグで スマホの挙動を制限している -->
<meta http-equiv="Content-Style-Type" content="text/css">
<!--CSSで余白をゼロにしている -->
<style type="text/css">
body {
margin: 0px;
}
</style>
</head>
<body>

<canvas id="myCanvas"></canvas>

<!-- ↓ここからJavascript -->
<script type="text/javascript">

//変数系を初期設定
var canvas;
var context;
var myHue;


window.onload = function() {//これ読み込み終わったら
syokika();//syokikaを実行してね
}

function syokika(){//これがsyokikaね
canvas = document.getElementById("myCanvas");//どのcanvasにするか指定
canvas.width = window.innerWidth;//幅は全幅ですよ
canvas.height = window.innerHeight;//高さもフルで
context = canvas.getContext("2d");//2次元仕様で

context.fillStyle = "rgb(0, 0, 0)";//塗る準備よ!色はRGBモデルで量はそれぞれ0,0,0ね
context.fillRect(0, 0, canvas.width, canvas.height);//はい,0,0(左上)から,全幅,全高で塗って!
}

var grX = 0;
var grY = 0;
window.addEventListener("devicemotion", function(evt){//これの反応をみててください,その反応がdevidemotionという種類であればその値をevtに入れなさい
grX = evt.accelerationIncludingGravity.x;  // evtのx軸の傾きを出してgrXに入れなさい
grY = evt.accelerationIncludingGravity.y;  // evtのY軸の傾きを出してgrXに入れなさい
//重力なので出力される値は-9.8~9.8(G)です

});


setInterval(mydraw, 100);//10msec毎に描いてね

function mydraw(){
    var myHue = (((grY + 9.8)/19.6)*180)*2;//横位値をスクリーン幅で割った値に360を掛けて色相つくりmyHueに入れる
    var myBri = ((grX + 9.8)/19.6)*100;//縦位置をスクリーン高で割った値に100を掛けてmyBriに明るさを入れる
    
    ///////---ここに描画する要素を書く
   // context.fillStyle = "hsl(" + myHue + ", 100%, 50% )"; //HSL値(色相、彩度、輝度)を指定
   context.fillStyle = "hsl(" + myHue + ", 100%, " + myBri + "% )"; //HSL値(色相、彩度、輝度)を指定
	context.beginPath();
  	context.arc(canvas.width/2, canvas.height/2, 150, 0, Math.PI*2, true);
	context.fill();
	}


</script><!-- ↑ここまでJavascript -->
</body>
</html>

サンプル−>http://filmm.info/touch/touchcolor6.html