世界で一番短いクロックコード
3370 ワード
注:本文は張磊のブログから転載した.
一.概要
Processing.jsの著者はJohn Resigで、Jqueryに続いて2番目の力作だ.
Processing.jsは、教育の可視化されたプログラミング言語と実行環境を提供します.プロセスプログラムを作成することによって、教師は複雑な物理、化学、数学の原理イメージを学生に展示することができる.例えば、様々な曲線図、波線、粒子、分子構造を描くなど、生理衛生の授業でオタマジャクシの群れが泳いでいるなどのダイナミックな図形を描くこともできます.
Processing.jsはオープンなプログラミング言語で、FlashやJavaウィジェットを使用しない前提で、プログラム画像、アニメーション、インタラクティブなアプリケーションを実現することができます.
Processing.js JavaScriptを使用してシェイプsharpを描画し、HTML 5 canvas要素を操作して画像アニメーションを生成します.
Processing.jsは軽量で、把握しやすく、理想的なツールを提案し、データを可視化し、ユーザーインタフェースを作成し、Webベースのゲームを開発します.
二.コア関数
コード:
// Global variables
int radius = 50.0;
int X, Y;
int nX, nY;
nt delay = 16;
// Setup the Processing Canvas
void setup(){
size( 200, 200 );
strokeWeight( 10 );
frameRate( 15 );
X = width / 2;
Y = width / 2;
nX = X;
nY = Y;
}
// Main draw loop
void draw(){
radius = radius + sin( frameCount / 4 );
// Track circle to new destination
X+=(nX-X)/delay;
Y+=(nY-Y)/delay;
// Fill canvas grey
background( 100 );
// Set fill-color to blue
fill( 0, 121, 184 );
// Set stroke-color white
stroke(255);
// Draw circle
ellipse( X, Y, radius, radius );
}
// Set circle's next destination Canvas action
void mouseMoved(){
nX = mouseX;
nY = mouseY;
}
三.世界最短のクロックコード誕生
コード:
void draw() {
size(200, 200);background(0); fill(80); noStroke(); ellipse(100, 100, 160, 160);
stroke(255);
line(100, 100, cos( TWO_PI*second()/60- HALF_PI) * 70 + 100,
sin(TWO_PI*second()/60- HALF_PI) * 70 + 100);
line(100, 100, cos( TWO_PI*minute()/60- HALF_PI) * 60 + 100,
sin(TWO_PI*minute()/60- HALF_PI) * 60 + 100);
line(100, 100, cos(TWO_PI*(hour()%12)/12- HALF_PI) * 50 + 100,
sin(TWO_PI*(hour()%12)/12- HALF_PI) * 50 + 100);
}
コードの意味化が非常に強く、1つの円、3つの線があり、これもこのフレームワークが達成する目的の一つであることがわかります.
四.完全なコード
コード:
< !DOCTYPE html>
< html>
< head>
< body>
< script src="http://files.cnblogs.com/iamzhanglei/processing.js"
type="text/javascript">
< script type="application/processing">
void draw() {
size(200, 200);background(0); fill(80); noStroke(); ellipse(100, 100, 160, 160); stroke(255);
line(100, 100, cos( TWO_PI*second()/60- HALF_PI) * 70 + 100,
sin(TWO_PI*second()/60- HALF_PI) * 70 + 100);
line(100, 100, cos( TWO_PI*minute()/60- HALF_PI) * 60 + 100, sin(TWO_PI*minute()/60- HALF_PI) * 60 + 100);
line(100, 100, cos(TWO_PI*(hour()%12)/12- HALF_PI) * 50 + 100, sin(TWO_PI*(hour()%12)/12- HALF_PI) * 50 + 100);
}
< /script>
< canvas> HTML5, 、IE9 ··< /canvas>
< /body>
< /html>
-------------------------------------------------------------------
以下の文章にも興味があるかもしれません.
私はどのようにコンピュータのプログラミングを学びましたか.
「品質は構築プロセスにある」ですか?
HTML 5開発者が知りたいテクニックとツールの概要
10個のWeb開発設計関連リソースブログの推奨
モバイルアプリケーション開発ツールとプラットフォームの最適化
C言語の父の死は「セミコロン」の追悼を引き起こした
--------------------------------------------------