メイキング「NERV極秘資料 - 電力使用状況」こと技術解説



NERV - 使 

使Web



NERV  - ITmedia NEWS


NERV 使 | 


Twitter16000
http://topsy.com/kanmisikou.net/lab/power/


IT2
http://b.hatena.ne.jp/ranking/weekly/20110321/it



Web



Twitterid:TERRAZI



 




1. 


CSV
3/22




API使


PHP使


JPEG
GIF




241px


PHPGD
GD使


<?php

// GIF画像を取得してイメージリソースとする
$image=ImageCreateFromGIF("http://www.tepco.co.jp/forecast/html/images/juyo-j.gif");

$x=46; // X軸のカーソルを置くピクセルの初期値

 // 24時間分、繰り返す
 for($j=0;$j<24;$j++) {
 $x+=22; // グラフ軸を1つずらす(px数はPhotoshopなどで測る)
 
  // 棒グラフの高さ分、繰り返す
  for($i=225;$i>=0;$i--) {
  $y=60+$i; // 下から順番になめていく
  
  $rgb=imagecolorat($image,$x,$y); // X軸、Y軸のピクセルを取得
  $colors=imagecolorsforindex($image, $rgb); // RGB値を連想配列に格納
   if( ($colors["red"]==0) && ($colors["green"]==0) && ($colors["blue"]==255) ) {
   // 〜 R:0 G:0 B:255 (ブルー)のピクセルが見つかったときの処理 〜
   }
  }
 }









Yahoo!

 - Yahoo! JAPAN Tech Blog 



PHPWeb -  








PHPjson_encode()使JSON
XML





http://kanmisikou.net/lab/power/today.xml


API使
使-^




2. 


Illustrator








調


http://www.designioustimes.com/tutorials/5-steps-for-drawing-complex-vector-sun-rays.html






OK


HTML
Flash使HTML5
Text-ShadowWeb Fonts使






Text-Shadow使



Web Fonts12
Opera
Chrome
Web Fonts










3. HTML


HTML
Illustrator.aiPNGPhotoshop


img使
background-image







Web使調









PHPCoda使
便Dreamweaver使


App Store
http://itunes.apple.com/jp/app/coda/id406001464?mt=12
 


divfloat
divbackground-image



spancanvas
img
 <div id="container">
  <div id="mater1"></div>
  <div id="mater2"><span class="count" id="count1">0</span><canvas id="pw1" width="400" height="400"></canvas></div>
  <div id="mater3"><span class="count" id="count2">0</span><canvas id="pw2" width="400" height="400"></canvas></div>
  <div id="mater4"><span id="gettime" class="number">0000-00-00 00:00:00</span><span id="jst" class="number">0000-00-00 00:00:00</span></div>
  <div id="mater5"><img id="blackout" src="images/blackout.png" alt="" width="148" height="259" /></div>
  <div id="mater6"><span class="number" id="rs1">0</span><span class="number" id="rs2">0</span><span class="number" id="rs3">0</span></div>
  <div id="mater7"></div>
  <div id="mater8"><iframe src="http://110chang.com/rinban/" id="rinban"></iframe><div id="rinban_txt">情報提供元 : http://110chang.com/rinban/</div></div>
  <div id="mater9"></div>
 </div>


110changiframe







4. CSS3


CSS3使

使



使Web fontsText-Shadow


Web fonts@font-faceURL
font-family
@font-face {
 font-family: yourname;
 src: url(YournameD7UltimateCondensed.ttf);
}

.count {
 font-size:110px;
 text-shadow: 0px 0px 20px rgba(148,219,119,1);
 text-align: right;
 color: #dcf0dc;
 font-family:yourname;
}



Webfonts WOFF



text-shadow





5. JavaScript





jQueryjQuery使
DOM


jQueryThe Write Less, Do More.




JavaScript


$(document).ready(function(){
    $.ajax({
    url: "today.xml",
    type: "GET",
    dataType: "xml",
    cache: false,
    success: init
    });
});


jQueryreadyXMLAjax
Ajax






init
initXMLHTML




// メーターの針は先に読み込んでおきます
var arrow = new Image();
arrow.src = "images/m.png";


function drawImage () {
// canvas要素を取得します。
// ちなみに以下の1文はjQueryを使っている場合「var c=$("#pw1")[0];」または「var c=$("#pw1").get();]でも可能。これ豆な。
var c=document.getElementById("pw1");

// canvas要素の2D描画コンテキストにアクセスします
var cnt=c.getContext("2d");

// 描画されている内容を全消しします
cnt.clearRect(0,0,c.width,c.height);

// 描画位置を中心にします
cnt.translate(c.width/2, c.height/2);

// ぐいーんと数値を上げていく部分です。指定された数値になるまで5ずつ上げていきます
    if(nowrot<rot) nowrot+=5;
    else nowrot=rot;

// ランダムな数値を加算して、針をぶらします
base=nowrot+(Math.floor(Math.random()*5)/10);

// 円周率で角度からアングルを算出します
base=base*Math.PI/180;

// 描画コンテキストを回転させます
cnt.rotate(base);

// 針は画像中央よりも上部にあるので、ピクセル数を計算してその位置に描画します
cnt.drawImage(arrow,-17,-203);

// 描画コンテキストを元の角度に戻します
cnt.rotate(-base);

// 描画コンテキストを元の位置に戻します
cnt.translate(-c.width/2, -c.height/2);

// 50ミリ秒後に再度呼び出します
setTimeout(drawImage,50);
}
















6. 






new Date() 
















Google
http://www.google.co.jp/intl/ja/crisisresponse/japanquake2011.html