// ************** 04_13 **************

//var buttonHeight = 35; //上部のボタンの高さ

//var fontSize = 24;     //ボタンに表示される文字の大きさ

//回転加速度用変数

var rtgamma = 0;

//回転角度(ラジアン)

var angle = new PhysicalPoint(0);

//文字の形(1画ごとにbezierCurveToの点の連なり)

var letter = [

        [

                [282.644, 490.2271],

                [245.4956, 491.293],[188.5127, 492.8765],[165.4229, 492.0215],

                [163.6665, 471.4995],[162.6104, 440.437],[161.8345, 422.0474],

                [187.7681, 422.4375],[267.7236, 423.1533],[283.8403, 422.6455],

                [299.957, 422.1377],[334.0288, 420.5347],[359.7949, 420.2529],

                [412.4976, 419.6768],[511.6387, 407.9229],[573.3052, 395.1343],

                [577.9624, 423.4673],[579.8315, 446.8315],[579.8838, 467.5005],

                [530.498, 474.8701],[417.3862, 485.8457],[356.2065, 487.835],

                [331.0376, 488.6533],[312.9468, 489.3574],[282.644, 490.2271]

        ],

        [                        

                [421.9941, 606.2524],

                [409.8823, 604.7549],[377.6401, 607.9688],[355.6084, 614.6255],

                [332.8589, 621.499],[315.4014, 625.9971],[287.4287, 638.5479],

                [239.3545, 660.1177],[207.8857, 698.355],[207.8857, 738.4253],

                [207.8857, 772.5156],[233.6025, 771.3193],[241.3774, 770.7212],

                [259.9175, 770.123],[280.3682, 761.4893],[301.1841, 747.9946],

                [322, 734.5],[344.7666, 712.9258],[363.3833, 695.9629],

                [382, 679],[411.3086, 635.9741],[421.9941, 606.2524],

                [432.6797, 576.5308],[442.7109, 549.2954],[444.7207, 541.063],

                [446.7305, 532.8306],[449.1812, 520.5146],[449.5054, 514.1499],

                [460.7461, 516.6152],[507.1929, 528.2969],[523.0674, 532.6899],

                [521.7109, 537.9399],[519.8062, 546.1846],[518.2832, 552.4263],

                [516.7603, 558.668],[501.7983, 599.9453],[493.7622, 618.2139],

                [464.3213, 685.1421],[425.5, 736.5],[380.7275, 773.7114],

                [362.6118, 788.7676],[336.2529, 801.5645],[319.1265, 813.7822],

                [302, 826],[256.3291, 841.2935],[222.8374, 841.2935],

                [170.2075, 841.2935],[135.5195, 807.8013],[135.5195, 752.1812],

                [135.5195, 669.6475],[202.4849, 600.0195],[283.8403, 569.7705],

                [304.4072, 562.1235],[329.8911, 554.8184],[355.0103, 548.8379],

                [380.1294, 542.8574],[421.6914, 538.626],[444.7207, 541.063],

                [467.75, 543.5],[493.2485, 545.7051],[518.2832, 552.4263],

                [605.1655, 575.752],[643.2793, 636.7539],[643.2793, 703.7373],

                [643.2793, 799.4282],[571.5112, 864.02],[417.8076, 883.1582],

                [413.0229, 867.6084],[398.0713, 838.9009],[386.708, 822.7529],

                [494.3604, 810.792],[564.9321, 774.9077],[564.9321, 705.5317],

                [564.9321, 685.7954],[558.0693, 636.0708],[493.7622, 618.2139],

                [461.9141, 609.3701],[444.293, 609.0093],[421.9941, 606.2524]

        ],

        [

                [380.7275, 773.7114],

                [383.1196, 781.4863],[386.7197, 789.6377],[389.1001, 794.0459],

                [372.0981, 805.5391],[345.9565, 822.397],[327.499, 833.5186],

                [324.5381, 828.5049],[320.998, 820.4556],[319.1265, 813.7822],

                [317.2549, 807.1089],[308.1182, 774.7393],[301.1841, 747.9946],

                [294.25, 721.25],[289.1367, 668.0527],[287.4287, 638.5479],

                [285.7207, 609.043],[284.7207, 594.54],[283.8403, 569.7705],

                [282.96, 545.001],[282.3325, 517.4507],[282.644, 490.2271],

                [282.9556, 463.0034],[283.0464, 442.3101],[283.8403, 422.6455],

                [284.6343, 402.981],[284.5, 373.75],[286.8306, 341.9063],

                [310.25, 343],[360.75, 346.25],[380.7275, 349.083],

                [379.5313, 355.0637],[374.7466, 359.8484],[364.5796, 361.0444],

                [362.7852, 378.3887],[361.5894, 399.8398],[359.7949, 420.2529],

                [358.0005, 440.666],[356.8047, 466.9028],[356.2065, 487.835],

                [355.6084, 508.7671],[354.8408, 530.1821],[355.0103, 548.8379],

                [355.1797, 567.4937],[355.4668, 592.001],[355.6084, 614.6255],

                [355.75, 637.25],[359.0166, 670.6758],[363.3833, 695.9629],

                [367.75, 721.25],[378.3354, 765.9365],[380.7275, 773.7114]

        ]

];

function setup(){

        window.addEventListener("devicemotion", deviceMotion);

}

function deviceMotion(evt) {

        var rt = evt.rotationRate;

        rtgamma = rt.gamma;

}

function loop(){

        //angleに回転課速度センサーの値を加味する

        angle.setKasokudo(rtgamma*.1);

        //angleを0に戻すようにする

        angle.setKasokudo((0 - angle.x)*3);

        rtgamma = 0;

        //回転の基準の位置

        //var kijunX = 327;

        //var kijunY = 0;

        var kijunX = (327-100); // 18.10.14 add スマホ対応

        var kijunY = (0-100);   // 18.10.14 add スマホ対応

        

        //回転の位置の計算

        //まずletter[][][]のそれぞれの位置からpt[][]を複製する

        //その際に基準の位置とletterの位置との距離(すなわち半径)を測り、

        //遠ければより大きな、近ければ小さい倍率を計算して、ptの中心からの角度に掛け合わせる

        var pt = new Array();

        for(var i = 0; i < letter.length; ++i){

                pt[i] = new Array();

                for(var j = 0; j < letter[i].length; j++){

                        //それぞれのコントロールポイントと基準点との距離を測り

                        var dist = Math.sqrt(Math.pow(letter[i][j][0] - kijunX, 2)

                                        + Math.pow(letter[i][j][1] - kijunY, 2));

                        var bairitsu = dist/200;        //370での割合を計算

                        //(スクリーン幅の半分を1倍として

                        // どのぐらい角度に倍率をかけるか)

                        //angleに倍率をかけると

                        //基準点からの距離に比例した角度になる

                        var kakudo = angle.x*bairitsu;

                        //一次変換

                        //まず、letterの座標を基準点を原点にした位置に移動

                        //var xx1 = letter[i][j][0] - kijunX;

                        //var yy1 = letter[i][j][1] - kijunY;

                        var xx1 = letter[i][j][0] - (kijunX+40); // 18.10.14 add スマホ対応

                        var yy1 = letter[i][j][1] - (kijunY+90); // 18.10.14 add スマホ対応

                        //原点(基準点)を中心にkakudoだけ回転

                        var xx2 = xx1*Math.cos(kakudo) - yy1*Math.sin(kakudo);

                        var yy2 = xx1*Math.sin(kakudo) + yy1*Math.cos(kakudo);

                        //原点を元に戻す

                        var xx3 = xx2 + kijunX;

                        var yy3 = yy2 + kijunY;

                        //letterをそのまま描画するためのもの

                        //普段はコメントのままでいい

                        //var xx3 = letter[i][j][0];

                        //var yy3 = letter[i][j][1];

                        //var xx3 = letter[i][j][0]-100; // 18.10.14 add

                        //var yy3 = letter[i][j][1];     // 18.10.14 add

                        pt[i].push([xx3, yy3]);

                        

                }

        }

        //描画

        pbCtx.clearRect(0, 0, screenWidth, screenHeight);

        //ptはletterと同じ2元配列なので2重のfor文を作って

        for(var i = 0; i < pt.length; ++i){

                pbCtx.beginPath();

                //それぞれの点を巡る

                //3個で一つのbezierCurveToを構成する

                for(var j = 0; j < pt[i].length; j+=3){

                        if(j == 0){        //最初はmoveTo

                                pbCtx.moveTo(pt[i][j][0], pt[i][j][1]);

                        }else{                //2個目以降は3個の点を使ってベジェ曲線を引く

                                pbCtx.bezierCurveTo(pt[i][j-2][0], pt[i][j-2][1],

                                                pt[i][j-1][0], pt[i][j-1][1],

                                                pt[i][j][0], pt[i][j][1]);

                        }

                }

                pbCtx.fill();

        }

        //ボタンの描画

        //pbCtx.lineWidth = 1;

        //pbCtx.textAlign = "center";

        //pbCtx.font = fontSize+"px 'Times New Roman'";

        //pbCtx.fillStyle = "black";

        //pbCtx.beginPath();

        //pbCtx.rect(0, 0, screenWidth, buttonHeight);

        //pbCtx.fill();

        //pbCtx.fillStyle = "white";

        //pbCtx.fillText("4-13 下記キャンバス(600 x 800)は固定です。",

                //screenWidth/2, buttonHeight/2+fontSize/3);

        //pbCtx.fillStyle = "black";

}

function onPressed(n){

        

}

function onMove(n){

        

}

function onReleased(n){

        

}