posted Jul 29, 2011 6:09 PM by Editor KursusInternet
[
updated Jul 29, 2011 7:33 PM
]
Polyline adalah bentuk / shape yang terdiri dari beberapa line yang tersambung satu sama lainnya. Berbeda dengan polygon, ujung polyline biasanya terbuka. Gambar berikut menunjukkan 2 contoh polyline.
Gambar 1. Dua bentuk polyline sederhana
Untuk menggambar polyline di Java, tidak ada class khusus untuk bentuk tersebut seperti halnya polygon. Tetapi kita dapat menggambarnya dengan menggunakan class Line2D atau GeneralPath. Kedua class tersebut ada pada package java.awt.geom.
Pada kesempatan kali ini, kita akan menggunakan GeneralPath. Class ini merupakan turunan dari class Path2D.Float, dimana terdapat dua method yang sangat berguna untuk menggambar berbagai bentuk polyline, yaitu : - moveTo(x, y) : digunakan untuk memindahkan titik ke koordinat (x, y) tanpa menggambar.
- lineTo(x, y) : digunakan untuk memindahkan titik ke koordinat (x, y) dengan menggambar suatu garis penghubung.
Catatan Penting
Untuk memulai menggambar dengan GeneralPath, maka kita pertama kali harus memanggil method moveTo. Atau dengan kata lain, harus ada titik acuan awal.
Gambar 2. Contoh Polyline yang akan digambar Untuk menggambar bentuk pada gambar 2, maka contoh potongan codenya adalah sebagai berikut.
public void gambar(Graphics g) { Graphics2D g2d = (Graphics2D) g; double x[] = {83.15661, 183.15661, 183.15661, 227.44233, 227.44233, 278.8709, 278.8709, 313.15661, 313.15661, 356.01376}; double y[] = {315.29111, 315.29111, 192.43397, 192.43397, 315.29111, 315.29111, 99.576832, 99.576832, 315.29111, 315.29111}; GeneralPath p = new GeneralPath(); p.moveTo(x[0], y[0]); // Titik Acuan //Menghubungkan titik lain dengan garis for (int i = 1; i < x.length; i++) { p.lineTo(x[i], y[i]); } g2d.draw(p); }
Pada potongan code tersebut, x dan y adalah array yang mewakili kumpulan titik koordinat masing-masing untuk x dan y. Sebelum menggambar, kita ambil titik acuan awal dengan method moveTo ke titik (x[0], y[0]). Setelah itu kita menghubungkan seluruh titik sisa dengan lineTo.
Gambar hasil eksekusi dari code lengkap adalah sebagai berikut.
GambarPolyline.java
package com.kursusinternet.graphics;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.GeneralPath;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GambarPolyline extends JPanel {
private static final long serialVersionUID = 1L;
public void gambar(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
double x[] = {83.15661, 183.15661, 183.15661,
227.44233, 227.44233, 278.8709,
278.8709, 313.15661, 313.15661,
356.01376};
double y[] = {315.29111, 315.29111, 192.43397,
192.43397, 315.29111, 315.29111,
99.576832, 99.576832, 315.29111,
315.29111};
GeneralPath p = new GeneralPath();
p.moveTo(x[0], y[0]); // Titik Acuan
//Menghubungkan titik lain dengan garis
for (int i = 1; i < x.length; i++) {
p.lineTo(x[i], y[i]);
}
g2d.draw(p);
}
public void paintComponent(Graphics g) {
clear(g);
gambar(g);
}
protected void clear(Graphics g) {
super.paintComponent(g);
}
public static void main(String[] args) {
GambarPolyline panelGambar = new GambarPolyline();
JFrame frameGambar = new JFrame("Gambar Polyline");
frameGambar.setSize(400, 400);
panelGambar.setBackground(Color.white);
frameGambar.setContentPane(panelGambar);
frameGambar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frameGambar.setVisible(true);
}
}
~~ Selesai ~~
|
|