Efek Matrik dengan HTML5 dan Javascript

Sekarang kita akan bermain-main dengan HTML5 Canvas API dan Java Script . Ini adalah nspirasi dari dosen aku yang dalam perkuliahan apapun selalu mengaitkan dengan matriks

JIka kalian melihat film matrix maka akan bisa melihat bagaimana efek yang ada dalam movie tersebut..

Lalu aku berpikir apakah mungkin untuk membuat efek Matrix menggunakan HTML5 dan JavaScript   sesuatu seperti di bawah ini.

Efek Matrix

Efek Matrix

Pertama aku tulis beberapa kode JavaScript seperti  di bawah ini.

  1. <canvas id="myCanvasMatrix" width="500" height="200"
  2. style="border:1px solid #c3c3c3;">
  3. Please Upgrade your browser
  4. </canvas>
  5. var c1=document.getElementById("myCanvasMatrix");
  6. var ctx1=c1.getContext("2d");
  7. var Matrix=function(){
  8. ctx1.fillStyle='rgba(0,0,0,.05)';
  9. ctx1.fillRect(0,0,500,500);
  10. ctx1.fillStyle="#0f0";
  11. ctx1.fillText('Matrix', Math.random()*(500),
  12. Math.random((500));
  13. };
  14. setInterval(Matrix,30);

Kemudian menulis satu fungsi Matrix dimana diisi dengan kanvas "Matrix" kata pada lokasi secara acak menggunakan metode kanvas fillText . Dan mengunakan metode  Javascript setInterval.

ctx1.fillStyle='rgba(0,0,0,.05)';

ctx1.fillRect(0,0,500,500);


akan mengisi layar dengan latar belakang warna hitam dan opacity dari 0,05.

Bila setiap kali fungsi Matrix disebut, kanvas fillStyle akan menarik latar belakang pada screen.Because ini Anda dapat melihat teks memiliki warna yang berbeda di tempat yang berbeda pada teks canvas.Some akan memiliki warna hijau tanpa warna latar belakang transparan. Hal ini karena akan ada layer baru digambar di layar setiap kali Matrix disebut

Baris 10 akan menarik "Matrix" kata pada lokasi acak. Saya menggunakan javascrip t Math.random () melakukan hal yang sama.

Tapi ini bukan apa yang kita harapkan, Hati-hati mengamati di atas Matrix Effect Gif Gambar: Semua huruf diambil sepanjang Y-Axis sementara X-Koordinat adalah constant.Jadi aku mengubahbeberapa kode seperi berikut.Ini adalah titik kunci dalam Algoritma untuk membuat efek Matrix menggunakan HTML5

<canvas id="myCanvas" width="500" height="200" style="border:1px solid #c3c3c3;">

Your browser does not support the HTML5 canvas tag.

</canvas>

var YPositions= Array(30).join(0).split('');

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

var draw=function(){

ctx.fillStyle='rgba(0,0,0,.05)';

ctx.fillRect(0,0,500,500);

ctx.fillStyle="#0f0";

YPositions.map(function(y,index){

x=(index*10)+10;

ctx.fillText('a', x, y);

if(y>100)

{

YPositions[index]=0;

}

else

{

YPositions[index]=y+10;

}

});

};

setInterval(draw,30);


Dibalik Algoritma Efek Matrix yang  menggunakan HTML5 Canvas dan JavaScript:

Di sini aku menyatakan array (YPositions) untuk menyimpan Y-Coordinates.Initiallisasi array akan berisi semua nol . Dan dalam fungsi draw () aku menggunakan Array Java Script fungsi map, pada dasarnya adalah Membuat array baru dengan  memanggil fungsi yang disediakan pada setiap elemen dalam array tesebut.

Berikut adalah Contoh Array Java Script

var numbers = [1, 4, 9];

/* roots is now [1, 2, 3], numbers is still [1, 4, 9] */

var roots = numbers.map(Math.sqrt);


/* math sqrt method called on each element */


Indeks Array dimulai pada '0 'nol sehingga, Untuk X-co ordinat aku tambahkan 10, koordinat X (10,20,30,40 ......... 290)

Dan Y koordinat akan bervariasi dari (0-110) Jika nilai Y> 100 Aku ulang elemen array ke '0 'jika tidak incrementing 10. Di sini aku tidak menggunakan Array baru aku hanya mengubah array yang sudah ada (YPositions) dengan menggunakan Array Java Script Array  fungsi map.

Aku menggambar 'a' karakter di atas kanvas di (x, y) lokasi.


  • yaitu, pada Iterasi pertama kita akan menarik "a" di (10,10) (20,10) (30,10) ...... (290,10)
  • Iterasi kedua (10,20) (20,20) (30,20) .......... (290,20) dan ini berlangsung sampai Y> 100 maka kita akan me-reset nilai ke '0 '

 

Saya pikir sekarang Anda memahami Logika di balik pelaksanaan ini jika masih ragu lihat gambar di bawah ini.

HTML5CanvasTutorial

Tutorial HTML5Canvas

Sekarang kita harus mengganti "a" dengan huruf acak dan posisi Y beberapa koordinat acak untuk membuat aktual Matrix Effect menggunakan HTML5 dan javascript   Berikut adalah Kode terakhir.

<html><head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

<meta charset="utf-8">

<title>Matrix</title>

</head>

<body>

<div align="center">

<h3>Matrix dengan html5 dan javascript</i></h3>

<canvas id="q" width="500" height="500">Sorry Browser Won't Support</canvas><br/><br/>

<button id="play">Play</button>

<button id="pause">pause</button>

</div>

<script>

$(document).ready(function(){

var s=window.screen;

var width = q.width=s.width;

var height = q.height;

var yPositions = Array(300).join(0).split('');

var ctx=q.getContext('2d');

var draw = function () {

ctx.fillStyle='rgba(0,0,0,.05)';

ctx.fillRect(0,0,width,height);

ctx.fillStyle='#0F0';

ctx.font = '10pt Georgia';

yPositions.map(function(y, index){

text = String.fromCharCode(1e2+Math.random()*33);

x = (index * 10)+10;

q.getContext('2d').fillText(text, x, y);

if(y > 100 + Math.random()*1e4)

{

yPositions[index]=0;

}

else

{

yPositions[index] = y + 10;

}

});

};

RunMatrix();

function RunMatrix()

{

if(typeof Game_Interval != "undefined") clearInterval(Game_Interval);

Game_Interval = setInterval(draw, 33);

}

function StopMatrix()

{

clearInterval(Game_Interval);

}

//setInterval(draw, 33);

$("button#pause").click(function(){

StopMatrix();});

$("button#play").click(function(){RunMatrix();});

})

</script>

</body></html>


Comments

Popular posts from this blog

cara menggunakan select cases SPSS

analisis korelasi bivariate dengan SPSS

cara install SPSS 19