wandah
| Tutorial Flash - HTML5 - Javascript - DKV
Latest Blog

05.10.2020
Multimedia Interaktif Tata Surya
Membuat Multimedia Pembelajaran Interaktif tentang tata surya
ALL BLOG
;
Sistem Kordinat Kartesius
Tutorial Membuat Kordinat Kartesian dengan Flash Actionscript 3
Membuat sistem kordinat kartesius/kartesian dapat dilakukan secara manual maupun dengan menggunakan kode. Pada tutorial ini saya buatkan kode untuk membuat sistem kordinat kartesian dengan menggunakan kode. Untuk lebih jelasnya ikuti langkah berikut :
- Buka Adobe Flash / Animate, buat file baru bertipe AS3 kemudian drag klik Frame 1 dan buka Panel Action kemudian ketik (copas) kode berikut:
import flash.display.Shape; import flash.display.MovieClip; import flash.events.MouseEvent; import flash.text.TextField; var lebarLayar = stage.stageWidth; var tinggiLayar = stage.stageHeight; var xPusat:int = lebarLayar/2; var yPusat:int = tinggiLayar/2; var jarak:int = 25; //maxX dan maxY digunakan untuk memberi batas jarak axis dan ordinat var maxX = Math.floor((lebarLayar/2)/jarak)-1; var maxY = Math.floor((tinggiLayar/2)/jarak)-1; var drag = false; var kordinat:MovieClip; var titik:MovieClip; var warnaKordinat = 0x990000; var warnaSkala = 0xbdbdbd; var warnaTitik = 0x1737ad; var labelXY:TextField; function panah(x,y, dx, dy):MovieClip{ var grafik = new MovieClip(); var theta:Number = Math.atan2(dy,dx); var arrow:Shape = new Shape(); arrow.graphics.lineStyle(2, warnaKordinat, 1); arrow.graphics.moveTo(x, y); arrow.graphics.lineTo(x+dx, y-dy); var d = Math.sqrt(dx*dx+dy*dy); if (d > 5) d = 5; arrow.graphics.beginFill(warnaKordinat); arrow.graphics.moveTo(x+dx-3*d*Math.cos(theta+0.25*(Math.PI/2)),y-dy+3*d*Math.sin(theta+0.25*(Math.PI/2))); arrow.graphics.lineTo(x+dx,y-dy); arrow.graphics.lineTo(x+dx-3*d*Math.cos(theta-0.25*(Math.PI/2)),y-dy+3*d*Math.sin(theta-0.25*(Math.PI/2))); grafik.addChild(arrow); return grafik; } function buat_kordinat():MovieClip{ var grafik = new MovieClip(); //skala var kordinat:Shape = new Shape(); //ordinat var i:int; for (i=1; i<= maxY;i++){ kordinat.graphics.lineStyle(1, warnaSkala, 1); kordinat.graphics.moveTo(xPusat-maxX*jarak, yPusat-i*jarak); kordinat.graphics.lineTo(xPusat+maxX*jarak, yPusat-i*jarak); kordinat.graphics.moveTo(xPusat-maxX*jarak, yPusat+i*jarak); kordinat.graphics.lineTo(xPusat+maxX*jarak, yPusat+i*jarak); kordinat.graphics.lineStyle(2, warnaKordinat, 1); kordinat.graphics.moveTo(xPusat, yPusat-i*jarak); kordinat.graphics.lineTo(xPusat+5, yPusat-i*jarak); kordinat.graphics.moveTo(xPusat, yPusat+i*jarak); kordinat.graphics.lineTo(xPusat+5, yPusat+i*jarak); } //axis for (i=1;i<=maxX;i++){ kordinat.graphics.lineStyle(1, warnaSkala, 1); kordinat.graphics.moveTo(xPusat+i*jarak, yPusat-maxY*jarak); kordinat.graphics.lineTo(xPusat+i*jarak, yPusat+maxY*jarak); kordinat.graphics.moveTo(xPusat-i*jarak, yPusat-maxY*jarak); kordinat.graphics.lineTo(xPusat-i*jarak, yPusat+maxY*jarak); kordinat.graphics.lineStyle(2, warnaKordinat, 1); kordinat.graphics.moveTo(xPusat+i*jarak, yPusat); kordinat.graphics.lineTo(xPusat+i*jarak, yPusat+5); kordinat.graphics.moveTo(xPusat-i*jarak, yPusat); kordinat.graphics.lineTo(xPusat-i*jarak, yPusat+5); } grafik.addChild(kordinat); //label var lb:TextField; //ordinat for (i=1;i<maxY;i++){ //label lb = new TextField(); lb.selectable = false; lb.text = String(i); lb.textColor = warnaKordinat; lb.x = xPusat + 8; lb.y = yPusat - i*jarak-10; grafik.addChild(lb); lb = new TextField(); lb.selectable = false; lb.text = "-"+String(i); lb.textColor = warnaKordinat; lb.x = xPusat + 8; lb.y = yPusat + i*jarak-10; grafik.addChild(lb); } //axis for (i=1;i<maxX;i++){ //label lb = new TextField(); lb.selectable = false; lb.text = String(i); lb.textColor = warnaKordinat; lb.x = xPusat + i*jarak-5; lb.y = yPusat+10; grafik.addChild(lb); lb = new TextField(); lb.selectable = false; lb.text = "-"+String(i); lb.textColor = warnaKordinat; lb.x = xPusat - i*jarak-5; lb.y = yPusat + 6; grafik.addChild(lb); } //kordinat utama grafik.addChild(panah(xPusat, yPusat, maxX*jarak, 0)); grafik.addChild(panah(xPusat, yPusat, -maxX*jarak, 0)); grafik.addChild(panah(xPusat, yPusat, 0, maxY*jarak)); grafik.addChild(panah(xPusat, yPusat, 0, -maxY*jarak)); return grafik; } function buat_titik(x, y):MovieClip{ var grafik = new MovieClip(); grafik.x = xPusat+x*jarak; grafik.y = yPusat-y*jarak; var dot:Shape = new Shape(); dot.graphics.beginFill(warnaTitik); dot.graphics.drawCircle(0, 0, 10); grafik.addChild(dot); return grafik; } function setup():void{ kordinat = new MovieClip(); kordinat = buat_kordinat(); addChild(kordinat); titik = new MovieClip(); titik = buat_titik(5, 5); addChild(titik); titik.addEventListener(MouseEvent.MOUSE_DOWN, mulai_drag); titik.addEventListener(MouseEvent.MOUSE_UP, stop_drag); labelXY = new TextField(); labelXY.selectable = false; labelXY.text = "(5, 5)"; labelXY.x = titik.x+10; labelXY.y = titik.y-10; addChild(labelXY); } function dist(x1,y1,x2,y2):int{ return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); } function mulai_drag(e:MouseEvent):void{ var ob = e.currentTarget; labelXY.visible = false; ob.startDrag(); } function stop_drag(e:MouseEvent):void{ var ob = e.currentTarget; ob.stopDrag(); //snap ke posisi terdekat var px = Math.round((ob.x - xPusat)/jarak); var py = -1*Math.round((ob.y - yPusat)/jarak); ob.x = xPusat + px*jarak; ob.y = yPusat - py*jarak; labelXY.text = "("+px+", "+py+")"; labelXY.x = titik.x+10; labelXY.y = titik.y-10; labelXY.visible = true; } setup();
Jalankan aplikasi dengan menekan tombol Ctrl+Enter
Hasil kode di atas adalah sebagai berikut, jika anda jalankan kode di aplikasi Flash, anda bisa mengatur posisi titik dengan mendrag titik menggunakan mouse :

Penjelasan Kode
Kode di atas sangat sederhana, anda dapat mengatur ulang variabel-variabel yang ada agar sesuai dengan yang anda inginkan.
file sumber (Adobe Animate CC 2017): dapat diunduh disini
Share ( Ayo Berbagi )
Leave me a comment
untuk pertanyaan lebih baik di email langsung ke wandah [at] wandah [dot] com agar cepat direspon