This Blog

Syndication

News

Awards

Microsoft MVP Logo
Grab this badge here!

Certificates

Transcript ID#: 6724122
Brainbench ASP.NET Certificate
 
Brainbench ASP.NET 2.0 Certificate
 
Brainbench .NET Framework 2.0 Certificate

Ahmad Masykur

var myObject = { "languages" : [ "C#", "VB.NET", "ASP.NET", "Javascript", "SDCC", "Assembler" ] }; //

Menggambar Garis dan Lingkaran dengan JavaScript and jQuery

Browser poluler saat ini tidak semuanya mendukung gambar vektor kecuali Firefox dan Safari dengan fitur Canvas yang ada. Dengan sedikit trik kita dapat menggambar garis dan lingkaran pada halaman HTML. Namun perlu diingat bahwa trik ini bukanlah cara yang baik bahkan bisa dibilang buruk. Saya hanya ingin menunjukkan saja kalo dengan cara ini kita bisa menggambar garis dan lingkaran.

Pada dasarnya trik ini menggunakan beberapa elemen DIV berukuran 1x1 piksel yang dirender sedemikian rupa sehingga membentuk garis dan lingkaran. DIV harus diisi dengan elemen lain supaya terlihat rapi. Jika DIV tanpa anak, ukuran elemen tersebut tidak bisa diatur menjadi 1x1 piksel. Untuk mengatasi masalah ini diisikan elemen IMG dengan gambar transparan sebesar 1x1 piksel.

Berikut ini adalah script yang digunakan untuk menggambar garis dan lingkaran dengan JavaScript dan jQuery.

<html> <head> <title>Drawing</title> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> <script type="text/javascript"> $(document).ready(function() { line(50,30, 100, 150); circle(110,110, 100); }); function line(x1, y1, x2, y2) { c = $(document.body); var dx = Math.abs(x2-x1); var dy = Math.abs(y2-y1); var d = Math.max(dx, dy); var i=0; for(i=0; i < d; i++) { var img = $(document.createElement('img')).attr('src', 'blank.gif'); var div = $(document.createElement('div')).width(1).height(1).css({'background-color': '#f00', position: 'absolute', left: Math.min(x1,x2)+(i*dx/d), top: Math.min(y1,y2)+(i*dy/d) }); div.append(img); c.append(div); } } function circle(x, y, r) { c = $(document.body); var l = 2 * Math.PI * r; var i=0; for(i=0; i < l * (1+((10-Math.log(r+1))/10)); i++) { var x2 = r * Math.sin(360 * i/l); var y2 = r * Math.cos(360 * i/l); var img = $(document.createElement('img')).attr('src', 'blank.gif'); var div = $(document.createElement('div')).width(1).height(1).css({'background-color': '#f00', position: 'absolute', left: x+x2, top: y+y2 }); div.append(img); c.append(div); } } </script> </head> <body> </div> </body> </html>

Hasil tampilan dari script di atas seperti terlihat pada gambar di bawah

image

Semoga tulisan ini bisa dijadikan wawasan alternatif untuk menggambar dalam HTML. Saya tidak menyarankan trik ini untuk dipake dalam aplikasi sebenarnya. Gunakan Canvas (untuk Firefox dan Safari) atau embeded object (Silverlight/Flash) untuk menggambar vektor yang lebih baik.

Share this post: | | | |
Published Apr 03 2009, 01:24 PM by cahnom
Filed under: ,

Comments

 

Menggambar Garis dan Lingkaran dengan JavaScript and jQuery … said:

Pingback from  Menggambar Garis dan Lingkaran dengan JavaScript and jQuery &#8230;

April 4, 2009 5:41 AM
 

ronaldwidha said:

wah..ternyata ada versi inggris dan indo.

www.masykur.web.id/.../Drawing-using-JavaScript-and-jQuery.aspx

nice

April 8, 2009 12:32 PM
 

Ahmad Masykur said:

Pada posting sebelumnya saya pernah membahas bagaimana menggambar dengan JavaScript dan membuat chart

April 20, 2009 3:09 PM