Ini adalah Source code untuk buat bentuk Garis dengan Algoritma DDA
public void drawline_DDA(Graphics g) {
super.paintComponents(g);
int langkah;
int xInc, yInc;
int x0 = 120,
y0 = 230;
int x1 = 270, y1 = 230;
int x = x0, y = y0;
int dx = x1 - x0,
dy = y1 - y0;
if (Math.abs(dx) > Math.abs(dy)) {
langkah = Math.abs(dx);
} else {
langkah = Math.abs(dy);
}
xInc = dx / langkah;
yInc = dy / langkah;
for (x = x0; x < x1; x++) {
x += xInc;
y += yInc;
putPixel(g, Math.round(x), Math.round(y), Color.black, 6);
}
}
Outputnya kaya gini nih
Ini adalah Source code untuk buat bentuk Garis dengan Algoritma Bresenheim
void drawLine_bresenham(Graphics g) {
super.paintComponents(g);
int xa = 120, xb = 270, ya = 230, yb = 230, p, x, y, xend;
int dx = Math.abs(xb - xa);
int dy = Math.abs(yb - ya);
p = (2 * dy) - dx;
if (xa > xb) {
x = xb;
y = yb;
xend = xa;
} else {
x = xa;
y = ya;
xend = xb;
}
putPixel(g, Math.round(x), Math.round(y), Color.black, 1);
for (x = xa; x < xend; x++) {
if (p < 0) {
p = p + (2 * dy);
} else {
y = y + 1;
p = p + (2 * (dy - dx));
}
putPixel(g, Math.round(x), Math.round(y), Color.black, 1);
}
}
Output Nya kaya gini nih
Ini adalah Source code untuk buat bentuk Lingkaran dengan Algoritma Midpoint
public void algoritma_midpoint(Graphics g) {
super.paintComponents(g);
int r = 50;
int x = 0, y = r, p = 1 - r, i = 1;
plotCirclePoints(g, x, y, Color.BLACK, 1);
while (x < y) {
x++;
if (p < 0) {
p += 2 * x + 1;
} else {
p += 2 * (x - y) + 1;
y--;
}
plotCirclePoints(g, x, y, Color.BLACK, 1);
i++;
}
}
private void putPixel(Graphics g, int x, int y, Color color, int size) {
try {
Graphics g2 = (Graphics2D) g;
g2.setColor(color.black);
g2.fillRect(x, y, size, size);
int pixX = Math.abs(x);
int pixY = Math.abs(y);
pixel[pixX][pixY] = color;
} catch (IndexOutOfBoundsException ex) {
} catch (Exception ex2) {
}
}
private void plotCirclePoints(Graphics g, int x, int y, Color color, int size) {
int xCenter = 200, yCenter = 250;
putPixel(g, xCenter + x, yCenter + y, color, size);
putPixel(g, xCenter - x, yCenter + y, color, size);
putPixel(g, xCenter + x, yCenter - y, color, size);
putPixel(g, xCenter - x, yCenter - y, color, size);
putPixel(g, xCenter + y, yCenter + x, color, size);
putPixel(g, xCenter - y, yCenter + x, color, size);
putPixel(g, xCenter + y, yCenter - x, color, size);
putPixel(g, xCenter - y, yCenter - x, color, size);
}
Output Nya kaya gini nih
Ini adalah Source code untuk buat bentuk Elips dengan Algoritma Midpoint
public void drawEllipseMidpoint(Graphics g) {
int rx = 50, ry = 90;
int rx2 = rx * rx, ry2 = ry * ry;
int twoRx2 = 2 * rx2, twoRy2 = 2 * ry2;
int p, x = 0, y = ry, px = 0, py = twoRx2 * y, i = 0;
plotEllipsePoints(g, x, y, Color.BLACK, 1);
p = (int) Math.round(ry2 - (rx2 * ry) + (0.25 * rx2));
while (px < py) {
x++;
px += twoRy2;
if (p < 0) {
p += ry2 + px;
} else {
y--;
py -= twoRx2;
p += ry2 + px - py;
}
plotEllipsePoints(g, x, y, Color.BLACK, 1);
i++;
}
p = (int) Math.round(ry2 * (x + 0.5) * (x + 0.5) + rx2 * (y - 1) * (y - 1) - rx2 * ry2);
while (y > 0) {
y--;
py -= twoRx2;
if (p > 0) {
p += rx2 - py;
} else {
x++;
px += twoRy2;
p += rx2 - py + px;
}
plotEllipsePoints(g, x, y, Color.BLACK, 1);
i++;
}
}
private void plotEllipsePoints(Graphics g, int x, int y, Color color, int size) {
int xCenter = 200, yCenter = 230;
putPixel(g, xCenter + x, yCenter + y, color, size);
putPixel(g, xCenter - x, yCenter + y, color, size);
putPixel(g, xCenter + x, yCenter - y, color, size);
putPixel(g, xCenter - x, yCenter - y, color, size);
}
Output Nya kaya gini nih
Ini adalah Source code untuk buat bentuk Persegi dengan Algoritma DDA
public void kotak_dda(Graphics g) {
//variable
int a0, b0, a1, b1, dx, dy, step, tx, ty;
int x, y, x_tambah, y_tambah;
//inisial translasi
tx = 80;
ty = 70;
//koordinat titik
a0 = 70;
b0 = 70;
a1 = 200;
b1 = 200;
//translasi
int x0 = a0 + tx;
int x1 = a1 + tx;
int y0 = b0 + ty;
int y1 = b1 + ty;
dx = x1 - x0;
dy = y1 - y0;
x = x0;
y = y0;
//faktor pembagi
if (dx > dy) {
step = dx;
} else {
step = dy;
}
x_tambah = dx / step;
y_tambah = dy / step;
//menggambar kotak
for (int k = 0; k < step; k++) {
x += x_tambah;
y += y_tambah;
putPixel(g, Math.round(x), Math.round(y0), Color.black, 1);
putPixel(g, Math.round(x), Math.round(y1), Color.black, 1);
putPixel(g, Math.round(x0), Math.round(y), Color.black, 1);
putPixel(g, Math.round(x1), Math.round(y), Color.black, 1);
}
}
Output Nya kaya gini nih
Minggu, 24 Juni 2012
Sabtu, 23 Juni 2012
Tugas 8 (Gambar / Objek 3 Dimensi) Dengan Java
Diposting oleh
Unknown
di
20.58
Source code Nya
import javax.vecmath.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
//________________________________________
import java.applet.*;
import com.sun.j3d.utils.applet.MainFrame;
public class Logo extends Applet {
public static void main(String[] args) {
new MainFrame(new Logo(), 640, 480);
}
public void init() {
// create canvas
GraphicsConfiguration gc =
SimpleUniverse.getPreferredConfiguration();
Canvas3D cv = new Canvas3D(gc);
setLayout(new BorderLayout());
add(cv, BorderLayout.CENTER);
BranchGroup bg = createSceneGraph();
bg.compile();
SimpleUniverse su = new SimpleUniverse(cv);
su.getViewingPlatform().setNominalViewingTransform();
su.addBranchGraph(bg);
}
private BranchGroup createSceneGraph() {
BranchGroup root = new BranchGroup();
TransformGroup spin = new TransformGroup();
spin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
root.addChild(spin);
Transform3D tr = new Transform3D();
tr.setScale(0.9);
tr.setRotation(new AxisAngle4d(1, 0, 0, Math.PI/2));
TransformGroup tg = new TransformGroup(tr);
spin.addChild(tg);
// torus
Shape3D torus = new Torus(0.04, 0.6);
Appearance ap = new Appearance();
ap.setMaterial(new Material());
torus.setAppearance(ap);
tg.addChild(torus);
// shared group of 4 arrows
SharedGroup sg = new SharedGroup();
Shape3D arrow;
Transform3D tra;
TransformGroup tga;
for (int i = 0; i < 4; i++) {
arrow = new Shape3D(new Arrow(), ap);
tra = new Transform3D();
tra.setRotation(new AxisAngle4d(0, 0, 1, i*Math.PI/2));
tga = new TransformGroup(tra);
sg.addChild(tga);
tga.addChild(arrow);
}
// four links to shared group
Link link = new Link();
link.setSharedGroup(sg);
tr = new Transform3D();
tr.setScale(0.675);
tg = new TransformGroup(tr);
tg.addChild(link);
spin.addChild(tg);
//______________________________________
link = new Link();
link.setSharedGroup(sg);
tr = new Transform3D();
tr.setScale(0.55);
tr.setRotation(new AxisAngle4d(0, 0, 1, Math.PI/4));
tg = new TransformGroup(tr);
tg.addChild(link);
spin.addChild(tg);
link = new Link();
link.setSharedGroup(sg);
tr = new Transform3D();
tr.setScale(0.4);
tr.setRotation(new AxisAngle4d(0, 0, 1, Math.PI/8));
tg = new TransformGroup(tr);
tg.addChild(link);
spin.addChild(tg);
link = new Link();
link.setSharedGroup(sg);
tr = new Transform3D();
tr.setScale(0.4);
tr.setRotation(new AxisAngle4d(0, 0, 1, 3*Math.PI/8));
tg = new TransformGroup(tr);
tg.addChild(link);
spin.addChild(tg);
// rotation
Alpha alpha = new Alpha(-1, 80000);
RotationInterpolator rotator =
new RotationInterpolator(alpha, spin);
BoundingSphere bounds = new BoundingSphere();
rotator.setSchedulingBounds(bounds);
spin.addChild(rotator);
// background and lights
Background background = new Background(1.0f, 1.0f, 1.0f);
background.setApplicationBounds(bounds);
root.addChild(background);
AmbientLight light = new AmbientLight
(true, new Color3f(Color.red));
light.setInfluencingBounds(bounds);
root.addChild(light);
PointLight ptlight = new PointLight(new Color3f(Color.white),
new Point3f(2f,2f,2f), new Point3f(1f,0f,0f));
ptlight.setInfluencingBounds(bounds);
root.addChild(ptlight);
return root;
}
}
OUTPUT Nya kayak gini
1. Tampak depan
2. Tampak samping
import javax.vecmath.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
//________________________________________
import java.applet.*;
import com.sun.j3d.utils.applet.MainFrame;
public class Logo extends Applet {
public static void main(String[] args) {
new MainFrame(new Logo(), 640, 480);
}
public void init() {
// create canvas
GraphicsConfiguration gc =
SimpleUniverse.getPreferredConfiguration();
Canvas3D cv = new Canvas3D(gc);
setLayout(new BorderLayout());
add(cv, BorderLayout.CENTER);
BranchGroup bg = createSceneGraph();
bg.compile();
SimpleUniverse su = new SimpleUniverse(cv);
su.getViewingPlatform().setNominalViewingTransform();
su.addBranchGraph(bg);
}
private BranchGroup createSceneGraph() {
BranchGroup root = new BranchGroup();
TransformGroup spin = new TransformGroup();
spin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
root.addChild(spin);
Transform3D tr = new Transform3D();
tr.setScale(0.9);
tr.setRotation(new AxisAngle4d(1, 0, 0, Math.PI/2));
TransformGroup tg = new TransformGroup(tr);
spin.addChild(tg);
// torus
Shape3D torus = new Torus(0.04, 0.6);
Appearance ap = new Appearance();
ap.setMaterial(new Material());
torus.setAppearance(ap);
tg.addChild(torus);
// shared group of 4 arrows
SharedGroup sg = new SharedGroup();
Shape3D arrow;
Transform3D tra;
TransformGroup tga;
for (int i = 0; i < 4; i++) {
arrow = new Shape3D(new Arrow(), ap);
tra = new Transform3D();
tra.setRotation(new AxisAngle4d(0, 0, 1, i*Math.PI/2));
tga = new TransformGroup(tra);
sg.addChild(tga);
tga.addChild(arrow);
}
// four links to shared group
Link link = new Link();
link.setSharedGroup(sg);
tr = new Transform3D();
tr.setScale(0.675);
tg = new TransformGroup(tr);
tg.addChild(link);
spin.addChild(tg);
//______________________________________
link = new Link();
link.setSharedGroup(sg);
tr = new Transform3D();
tr.setScale(0.55);
tr.setRotation(new AxisAngle4d(0, 0, 1, Math.PI/4));
tg = new TransformGroup(tr);
tg.addChild(link);
spin.addChild(tg);
link = new Link();
link.setSharedGroup(sg);
tr = new Transform3D();
tr.setScale(0.4);
tr.setRotation(new AxisAngle4d(0, 0, 1, Math.PI/8));
tg = new TransformGroup(tr);
tg.addChild(link);
spin.addChild(tg);
link = new Link();
link.setSharedGroup(sg);
tr = new Transform3D();
tr.setScale(0.4);
tr.setRotation(new AxisAngle4d(0, 0, 1, 3*Math.PI/8));
tg = new TransformGroup(tr);
tg.addChild(link);
spin.addChild(tg);
// rotation
Alpha alpha = new Alpha(-1, 80000);
RotationInterpolator rotator =
new RotationInterpolator(alpha, spin);
BoundingSphere bounds = new BoundingSphere();
rotator.setSchedulingBounds(bounds);
spin.addChild(rotator);
// background and lights
Background background = new Background(1.0f, 1.0f, 1.0f);
background.setApplicationBounds(bounds);
root.addChild(background);
AmbientLight light = new AmbientLight
(true, new Color3f(Color.red));
light.setInfluencingBounds(bounds);
root.addChild(light);
PointLight ptlight = new PointLight(new Color3f(Color.white),
new Point3f(2f,2f,2f), new Point3f(1f,0f,0f));
ptlight.setInfluencingBounds(bounds);
root.addChild(ptlight);
return root;
}
}
OUTPUT Nya kayak gini
1. Tampak depan
2. Tampak samping
Jumat, 22 Juni 2012
Tugas 3 (BENTUK POLINOMIAL) dengan Java
Diposting oleh
Unknown
di
09.35
Berikut adalah menggambar bentuk POLINOMIAL menggunakan JFrame Form yang memanggilnya melalui perintah tombol (Button) yang diberi aksi ACTION PERFORMED
SOURCE CODE nya
package tugas_grafkom3;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.CubicCurve2D;
import java.awt.geom.Line2D;
import java.awt.geom.QuadCurve2D;
import javax.swing.JPanel;
public class grafkom3 extends javax.swing.JFrame {
public grafkom3() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
bt_derajat_1 = new javax.swing.JButton();
bt_derajat_2 = new javax.swing.JButton();
bt_derajat_3 = new javax.swing.JButton();
bt_spline = new javax.swing.JButton();
bt_kontrol = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 325, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 305, Short.MAX_VALUE)
);
bt_derajat_1.setText("Derajat 1");
bt_derajat_1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_derajat_1ActionPerformed(evt);
}
});
bt_derajat_2.setText("Derajat 2");
bt_derajat_2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_derajat_2ActionPerformed(evt);
}
});
bt_derajat_3.setText("Derajat 3");
bt_derajat_3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_derajat_3ActionPerformed(evt);
}
});
bt_spline.setText("Spline");
bt_spline.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_splineActionPerformed(evt);
}
});
bt_kontrol.setText("Titik Kontrol");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(28, 28, 28)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 24, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(bt_kontrol, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bt_spline, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bt_derajat_3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bt_derajat_2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bt_derajat_1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(41, 41, 41))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(48, 48, 48)
.addComponent(bt_derajat_1)
.addGap(18, 18, 18)
.addComponent(bt_derajat_2)
.addGap(18, 18, 18)
.addComponent(bt_derajat_3)
.addGap(18, 18, 18)
.addComponent(bt_spline)
.addGap(18, 18, 18)
.addComponent(bt_kontrol))
.addGroup(layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(20, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void bt_derajat_1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new Derajad_1();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void bt_derajat_2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new Derajad_2();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void bt_derajat_3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new Derajad_3();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void bt_splineActionPerformed(java.awt.event.ActionEvent evt) {
jPanel1 = new spline();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new grafkom3().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton bt_derajat_1;
private javax.swing.JButton bt_derajat_2;
private javax.swing.JButton bt_derajat_3;
private javax.swing.JButton bt_kontrol;
private javax.swing.JButton bt_spline;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
}
class Derajad_1 extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g.create();
Shape lurus = new Line2D.Double(200,250, 300, 50);
g2.draw(lurus);
}
}
class Derajad_2 extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g.create();
Shape kuadrat = new QuadCurve2D.Double(100,150,175,75,300,150);
g2.draw(kuadrat);
}
}
class Derajad_3 extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g.create();
Shape kubik = new CubicCurve2D.Double(50,150,150, 100,200,250,300,150);
g2.draw(kubik);
}
}
class spline extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g.create();
g2.draw(new CubicCurve2D.Double(30, 140, 50, 10, 120, 180, 190, 30));
g2.draw(new QuadCurve2D.Double(190, 30, 220, 10, 230, 60));
}
}
OUTPUT nya
1. Derajat 1
2. Derajat 2
SOURCE CODE nya
package tugas_grafkom3;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.CubicCurve2D;
import java.awt.geom.Line2D;
import java.awt.geom.QuadCurve2D;
import javax.swing.JPanel;
public class grafkom3 extends javax.swing.JFrame {
public grafkom3() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
bt_derajat_1 = new javax.swing.JButton();
bt_derajat_2 = new javax.swing.JButton();
bt_derajat_3 = new javax.swing.JButton();
bt_spline = new javax.swing.JButton();
bt_kontrol = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 325, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 305, Short.MAX_VALUE)
);
bt_derajat_1.setText("Derajat 1");
bt_derajat_1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_derajat_1ActionPerformed(evt);
}
});
bt_derajat_2.setText("Derajat 2");
bt_derajat_2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_derajat_2ActionPerformed(evt);
}
});
bt_derajat_3.setText("Derajat 3");
bt_derajat_3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_derajat_3ActionPerformed(evt);
}
});
bt_spline.setText("Spline");
bt_spline.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bt_splineActionPerformed(evt);
}
});
bt_kontrol.setText("Titik Kontrol");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(28, 28, 28)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 24, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(bt_kontrol, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bt_spline, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bt_derajat_3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bt_derajat_2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bt_derajat_1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(41, 41, 41))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(48, 48, 48)
.addComponent(bt_derajat_1)
.addGap(18, 18, 18)
.addComponent(bt_derajat_2)
.addGap(18, 18, 18)
.addComponent(bt_derajat_3)
.addGap(18, 18, 18)
.addComponent(bt_spline)
.addGap(18, 18, 18)
.addComponent(bt_kontrol))
.addGroup(layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(20, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void bt_derajat_1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new Derajad_1();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void bt_derajat_2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new Derajad_2();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void bt_derajat_3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new Derajad_3();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void bt_splineActionPerformed(java.awt.event.ActionEvent evt) {
jPanel1 = new spline();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new grafkom3().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton bt_derajat_1;
private javax.swing.JButton bt_derajat_2;
private javax.swing.JButton bt_derajat_3;
private javax.swing.JButton bt_kontrol;
private javax.swing.JButton bt_spline;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
}
class Derajad_1 extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g.create();
Shape lurus = new Line2D.Double(200,250, 300, 50);
g2.draw(lurus);
}
}
class Derajad_2 extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g.create();
Shape kuadrat = new QuadCurve2D.Double(100,150,175,75,300,150);
g2.draw(kuadrat);
}
}
class Derajad_3 extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g.create();
Shape kubik = new CubicCurve2D.Double(50,150,150, 100,200,250,300,150);
g2.draw(kubik);
}
}
class spline extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g.create();
g2.draw(new CubicCurve2D.Double(30, 140, 50, 10, 120, 180, 190, 30));
g2.draw(new QuadCurve2D.Double(190, 30, 220, 10, 230, 60));
}
}
OUTPUT nya
1. Derajat 1
2. Derajat 2
3. Derajat 3
4. Spline
5. Titik kontrol
Belum Pak.... hehe
tugas 2 (BENTUK DASAR dengan PERINTAH TOMBOL) dengan Java
Diposting oleh
Unknown
di
09.10
Dibuat dengan menggunakan JFrame Form yang setiap button atau tombol diberi aksi ACTION PERFORMED
SOURCE CODE nya
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;
public class grafkom2 extends javax.swing.JFrame {
public grafkom2() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTitik = new javax.swing.JButton();
jPersegi = new javax.swing.JButton();
jSegitiga = new javax.swing.JButton();
jGaris = new javax.swing.JButton();
jLingkaran = new javax.swing.JButton();
jPolygon = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTitik.setText("Titik");
jTitik.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTitikActionPerformed(evt);
}
});
jPersegi.setText("Persegi");
jPersegi.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPersegiActionPerformed(evt);
}
});
jSegitiga.setText("Segitiga");
jSegitiga.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jSegitigaActionPerformed(evt);
}
});
jGaris.setText("Garis");
jGaris.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jGarisActionPerformed(evt);
}
});
jLingkaran.setText("Lingkaran");
jLingkaran.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jLingkaranActionPerformed(evt);
}
});
jPolygon.setText("Polygon");
jPolygon.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPolygonActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 386, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPolygon, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jGaris, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jTitik, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPersegi, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLingkaran, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSegitiga, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(38, 38, 38))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 293, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jTitik)
.addGap(18, 18, 18)
.addComponent(jPersegi)
.addGap(36, 36, 36)
.addComponent(jSegitiga)
.addGap(39, 39, 39)
.addComponent(jLingkaran)
.addGap(30, 30, 30)
.addComponent(jGaris)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPolygon)))
.addContainerGap(15, Short.MAX_VALUE))
);
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END);
pack();
}// </editor-fold>
// untuk memberikan aksi
private void jLingkaranActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new lingkaran();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jTitikActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new titik();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jPersegiActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new persegi();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jSegitigaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new segitiga();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jGarisActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new garis();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jPolygonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new polygon();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new grafkom2().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jGaris;
private javax.swing.JButton jLingkaran;
private javax.swing.JPanel jPanel1;
private javax.swing.JButton jPersegi;
private javax.swing.JButton jPolygon;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton jSegitiga;
private javax.swing.JButton jTitik;
// End of variables declaration
class titik extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
Shape titik2 = new Ellipse2D.Double(100, 120, 2, 2);
g2.setColor(Color.black);
g2.draw(titik2);
}
}
class persegi extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
Shape kotak = new Rectangle2D.Double(50, 60, 150, 150);
g2.setColor(Color.darkGray);
g2.fill (kotak);
g2.draw (kotak);
}
}
class segitiga extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
GeneralPath segi3 = new GeneralPath();
segi3.moveTo(50, 80);
segi3.lineTo(50, 160);
segi3.lineTo(160, 160);
segi3.lineTo(50, 80);
segi3.closePath();
g2.setColor(Color.red);
g2.draw(segi3);
g2.fill(segi3);
}
}
class lingkaran extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
//koordinat sebelumnya Shape lingkaran2 = new Ellipse2D.Double(5, 50, 80, 80);
//koornat tugas
Shape lingkaran2 = new Ellipse2D.Double(300, 207, 80, 80);
g2.setColor(Color.MAGENTA);
g2.draw(lingkaran2);
g2.fill(lingkaran2);
}
}
class garis extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
Shape garis2 = new Line2D.Double(30, 80, 210, 210);
g2.setColor(Color.blue);
g2.draw(garis2);
}
}
class polygon extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
GeneralPath segi6 = new GeneralPath();
segi6.moveTo(30, 130);
segi6.lineTo(100, 30);
segi6.lineTo(300, 30);
segi6.lineTo(370, 130);
segi6.lineTo(300, 230);
segi6.lineTo(100, 230);
segi6.lineTo(30, 130);
segi6.closePath();
g2.setColor(Color.ORANGE);
g2.draw(segi6);
g2.fill(segi6);
}
}
}
OUTPUT nya
1. menampilkan titik
2. Menampilkan Persegi
3. Menampilkan Segitiga
4. Menampilkan Lingkaran
5. Menampilkan Garis
6. Menampilkan Poligon
SOURCE CODE nya
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;
public class grafkom2 extends javax.swing.JFrame {
public grafkom2() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTitik = new javax.swing.JButton();
jPersegi = new javax.swing.JButton();
jSegitiga = new javax.swing.JButton();
jGaris = new javax.swing.JButton();
jLingkaran = new javax.swing.JButton();
jPolygon = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTitik.setText("Titik");
jTitik.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTitikActionPerformed(evt);
}
});
jPersegi.setText("Persegi");
jPersegi.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPersegiActionPerformed(evt);
}
});
jSegitiga.setText("Segitiga");
jSegitiga.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jSegitigaActionPerformed(evt);
}
});
jGaris.setText("Garis");
jGaris.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jGarisActionPerformed(evt);
}
});
jLingkaran.setText("Lingkaran");
jLingkaran.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jLingkaranActionPerformed(evt);
}
});
jPolygon.setText("Polygon");
jPolygon.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPolygonActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 386, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPolygon, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jGaris, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jTitik, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPersegi, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLingkaran, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSegitiga, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(38, 38, 38))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 293, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jTitik)
.addGap(18, 18, 18)
.addComponent(jPersegi)
.addGap(36, 36, 36)
.addComponent(jSegitiga)
.addGap(39, 39, 39)
.addComponent(jLingkaran)
.addGap(30, 30, 30)
.addComponent(jGaris)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPolygon)))
.addContainerGap(15, Short.MAX_VALUE))
);
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END);
pack();
}// </editor-fold>
// untuk memberikan aksi
private void jLingkaranActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new lingkaran();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jTitikActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new titik();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jPersegiActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new persegi();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jSegitigaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new segitiga();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jGarisActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new garis();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
private void jPolygonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jPanel1 = new polygon();
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new grafkom2().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jGaris;
private javax.swing.JButton jLingkaran;
private javax.swing.JPanel jPanel1;
private javax.swing.JButton jPersegi;
private javax.swing.JButton jPolygon;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton jSegitiga;
private javax.swing.JButton jTitik;
// End of variables declaration
class titik extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
Shape titik2 = new Ellipse2D.Double(100, 120, 2, 2);
g2.setColor(Color.black);
g2.draw(titik2);
}
}
class persegi extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
Shape kotak = new Rectangle2D.Double(50, 60, 150, 150);
g2.setColor(Color.darkGray);
g2.fill (kotak);
g2.draw (kotak);
}
}
class segitiga extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
GeneralPath segi3 = new GeneralPath();
segi3.moveTo(50, 80);
segi3.lineTo(50, 160);
segi3.lineTo(160, 160);
segi3.lineTo(50, 80);
segi3.closePath();
g2.setColor(Color.red);
g2.draw(segi3);
g2.fill(segi3);
}
}
class lingkaran extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
//koordinat sebelumnya Shape lingkaran2 = new Ellipse2D.Double(5, 50, 80, 80);
//koornat tugas
Shape lingkaran2 = new Ellipse2D.Double(300, 207, 80, 80);
g2.setColor(Color.MAGENTA);
g2.draw(lingkaran2);
g2.fill(lingkaran2);
}
}
class garis extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
Shape garis2 = new Line2D.Double(30, 80, 210, 210);
g2.setColor(Color.blue);
g2.draw(garis2);
}
}
class polygon extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
GeneralPath segi6 = new GeneralPath();
segi6.moveTo(30, 130);
segi6.lineTo(100, 30);
segi6.lineTo(300, 30);
segi6.lineTo(370, 130);
segi6.lineTo(300, 230);
segi6.lineTo(100, 230);
segi6.lineTo(30, 130);
segi6.closePath();
g2.setColor(Color.ORANGE);
g2.draw(segi6);
g2.fill(segi6);
}
}
}
OUTPUT nya
1. menampilkan titik
2. Menampilkan Persegi
3. Menampilkan Segitiga
4. Menampilkan Lingkaran
5. Menampilkan Garis
6. Menampilkan Poligon
Tugas 1 (Bentuk Dasar)
Diposting oleh
Unknown
di
00.01
SOURCE CODE nya
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author ellia
*/
public class grafkom extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g.create();
Shape kotak= new Rectangle2D.Double(10, 10, 160, 160);
g2.setColor(Color.black);
g2.draw(kotak);
g2.fill(kotak);
// lingkaran2
Shape lingkaran2=new Ellipse2D.Double(400,300,100 , 100);
g2.setColor(Color.blue);
g2.draw(lingkaran2);
g2.fill(lingkaran2);
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author ellia
*/
public class grafkom extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g.create();
Shape kotak= new Rectangle2D.Double(10, 10, 160, 160);
g2.setColor(Color.black);
g2.draw(kotak);
g2.fill(kotak);
// lingkaran2
Shape lingkaran2=new Ellipse2D.Double(400,300,100 , 100);
g2.setColor(Color.blue);
g2.draw(lingkaran2);
g2.fill(lingkaran2);
Kamis, 21 Juni 2012
tugas 6 (LUKISAN) dengan Java
Diposting oleh
Unknown
di
23.40
Berikut ini adalah membuat gambar lukisan rumah menggunakan Algoritma DDA, BRESENHEIM, dan Midpoint
SOURCE CODE nya sebagai berikut
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.GeneralPath;
import javax.swing.*;
import javax.swing.JFrame;
public class lukis extends JPanel {
double x_awal, x_akhir, y_awal, y_akhir, Dx, Dy, parameter, langkah, xincre, yincre, p, x2, y2, x_pusat, y_pusat;
GeneralPath gp = new GeneralPath();
GeneralPath gp2 = new GeneralPath();
GeneralPath gp3 = new GeneralPath();
GeneralPath gp4 = new GeneralPath();
GeneralPath gp5 = new GeneralPath();
GeneralPath gp6 = new GeneralPath();
GeneralPath gp7 = new GeneralPath();
GeneralPath gp8 = new GeneralPath();
GeneralPath gp9 = new GeneralPath();
public lukis () {
setBackground(Color.white);
setLayout(null);
}
public void gambar_garis_dda(int x_awal, int y_awal, int x_akhir, int y_akhir) {
this.x_awal = x_awal;
this.x_akhir = x_akhir;
this.y_awal = y_awal;
Dx = Math.abs(x_akhir - x_awal);
Dy = Math.abs(y_akhir - y_awal);
if (Dx > Dy) {
langkah = Dx;
} else {
langkah = Dy;
}
xincre = (x_akhir - x_awal) / langkah;
yincre = (y_akhir - y_awal) / langkah;
gp.moveTo(x_awal, y_awal);
if (x_akhir - x_awal > 0) {
for (double x = x_awal; x < x_akhir; x += xincre) {
gp.lineTo(x, y_awal);
y_awal += yincre;
}
} else {
for (double x = x_awal; x > x_akhir; x += xincre) {
gp.lineTo(x, y_awal);
y_awal += yincre;
}
}
}
public void gambar_garis_Bressenham(int x_awal, int y_awal, int x_akhir, int y_akhir) {
this.x_awal = x_awal;
this.x_akhir = x_akhir;
this.y_awal = y_awal;
this.y_akhir = y_akhir;
Dx = Math.abs(x_akhir - x_awal);
Dy = Math.abs(y_akhir - y_awal);
parameter = (2 * Dy) - Dx;
this.repaint();
gp.moveTo(x_awal, y_awal);
double xt, yt;
if (x_akhir - x_awal > 0) {
xt = 1;
} else {
xt = -1;
}
if (y_akhir - y_awal > 0) {
yt = 1;
} else {
yt = -1;
}
if (Dx > Dy) {
if (x_akhir - x_awal > 0) {
while (x_awal < x_akhir) {
if (parameter < 0) {
parameter += (2 * Dy);
} else {
y_awal += yt;
parameter = parameter + (2 * Dy) - (2 * Dx);
}
gp.lineTo(x_awal, y_awal);
x_awal += xt;
}
} else {
while (x_awal > x_akhir) {
if (parameter < 0) {
parameter += (2 * Dy);
} else {
y_awal += yt;
parameter = parameter + (2 * Dy) - (2 * Dx);
}
gp.lineTo(x_awal, y_awal);
x_awal += xt;
}
}
} else {
if (y_akhir - y_awal > 0) {
while (y_awal < y_akhir) {
if (parameter < 0) {
parameter += (2 * Dx);
} else {
x_awal += xt;
parameter = parameter + (2 * Dx) - (2 * Dy);
}
gp.lineTo(x_awal, y_awal);
y_awal += yt;
}
} else {
while (y_awal > y_akhir) {
if (parameter < 0) {
parameter += (2 * Dx);
} else {
x_awal += xt;
parameter = parameter + (2 * Dx) - (2 * Dy);
}
gp.lineTo(x_awal, y_awal);
y_awal += yt;
}
}
}
}
public void gambar_kotak_Bressenham(int x_awal, int y_awal, int x_akhir, int y_akhir) {
this.x_awal = x_awal;
this.x_akhir = x_akhir;
this.y_awal = y_awal;
Dx = Math.abs(x_akhir - x_awal);
Dy = Math.abs(y_akhir - y_awal);
parameter = (2 * Dy) - Dx;
this.repaint();
double g = x_awal, h = y_awal;
while (x_awal < x_akhir) {
if (parameter < 0) {
parameter += (2 * Dy);
} else {
y_awal++;
parameter = parameter + (2 * Dy) - (2 * Dx);
}
gp.moveTo(x_awal, y_awal);
x_awal++;
}
gp.lineTo(g, y_awal);
gp.lineTo(g, h);
gp.lineTo(x_awal, h);
gp.lineTo(x_awal, y_awal);
}
public void gambar_bulat_midpoint(int x_pusat, int y_pusat, int r) {
x2 = 0;
y2 = r;
this.x_pusat = x_pusat;
this.y_pusat = y_pusat;
gp.moveTo(x_pusat + x2, y_pusat + y2);
gp2.moveTo(x_pusat - x2, y_pusat + y2);
gp3.moveTo(x_pusat + x2, y_pusat - y2);
gp4.moveTo(x_pusat - x2, y_pusat - y2);
gp5.moveTo(x_pusat + y2, y_pusat + x2);
gp6.moveTo(x_pusat - y2, y_pusat + x2);
gp7.moveTo(x_pusat + y2, y_pusat - x2);
gp8.moveTo(x_pusat - y2, y_pusat - x2);
p = 1 - r;
while (x2 < y2) {
gp.lineTo(x_pusat + x2, y_pusat + y2);
gp2.lineTo(x_pusat - x2, y_pusat + y2);
gp3.lineTo(x_pusat + x2, y_pusat - y2);
gp4.lineTo(x_pusat - x2, y_pusat - y2);
gp5.lineTo(x_pusat + y2, y_pusat + x2);
gp6.lineTo(x_pusat - y2, y_pusat + x2);
gp7.lineTo(x_pusat + y2, y_pusat - x2);
gp8.lineTo(x_pusat - y2, y_pusat - x2);
x2++;
if (p < 0) {
p += (2 * x2) + 6;
} else {
y2--;
p += 2 * (x2 - y2) + 1;
}
this.repaint();
}
}
public void gambar_elips_midpoint(int x_pusat, int y_pusat, double Rx, double Ry) {
double Rx2 = Rx * Rx;
double twoRx2 = 2 * Rx2;
x2 = 0;
double px = 0;
double Ry2 = Ry * Ry;
double twoRy2 = 2 * Ry2;
y2 = Ry;
double py = twoRx2 * y2;
this.x_pusat = x_pusat;
this.y_pusat = y_pusat;
this.p = (Ry2 - (Rx2 * Ry) + (0.25 * Rx2));
gp.moveTo(x_pusat + x2, y_pusat + y2);
gp2.moveTo(x_pusat - x2, y_pusat + y2);
gp3.moveTo(x_pusat + x2, y_pusat - y2);
gp4.moveTo(x_pusat - x2, y_pusat - y2);
while (px < py) {
x2++;
px += twoRy2;
if (p < 0) {
p += Ry2 + px;
} else {
y2--;
py -= twoRx2;
p += Ry2 + px - py;
}
gp.lineTo(x_pusat + x2, y_pusat + y2);
gp2.lineTo(x_pusat - x2, y_pusat + y2);
gp3.lineTo(x_pusat + x2, y_pusat - y2);
gp4.lineTo(x_pusat - x2, y_pusat - y2);
}
this.p = Ry2 * (x2 + 0.5) * (x2 + 0.5) + Rx2 * (y2 - 1) * (y2 - 1) - Rx2 * Ry2;
while (y2 > 0) {
y2--;
py -= twoRx2;
if (p > 0) {
p += Rx2 - py;
} else {
x2++;
px += twoRy2;
p += Ry2 + px - py;
}
gp.lineTo(x_pusat + x2, y_pusat + y2);
gp2.lineTo(x_pusat - x2, y_pusat + y2);
gp3.lineTo(x_pusat + x2, y_pusat - y2);
gp4.lineTo(x_pusat - x2, y_pusat - y2);
}
this.repaint();
}
public void paintComponent(Graphics gambar1) {
super.paintComponents(gambar1);
Graphics2D g2 = (Graphics2D) gambar1;
GradientPaint backs = new GradientPaint(300, 90, new Color(51, 255, 255), 300, 350, new Color(0, 51, 255));
g2.setPaint(backs);
g2.fillRect(0, 0, 900, 900);
// mewarnai badan rumah
g2.setColor(Color.gray);
g2.fillRect(200, 200, 450, 300);
// genteng
g2.setColor(new Color(204, 51, 0));
gp9.moveTo(200, 200);
gp9.lineTo(425, 35);
gp9.lineTo(650, 200);
gp9.closePath();
g2.draw(gp9);
g2.fill(gp9);
// mewarnai jendela 1
g2.setColor(new Color(255, 255, 255));
g2.fillRect(230, 220, 108, 55);
// mewarnai jendela 2
g2.setColor(new Color(255, 255, 255));
g2.fillRect(520, 220, 108, 55);
// mewarnai pintu
g2.setColor(Color.yellow);
g2.fillRect(380, 340, 100, 160);
// mewarnai bundar atas pintu
g2.setColor(Color.orange);
g2.fillOval(380, 300, 100, 100);
// mewarnai pintu
g2.setColor(Color.yellow);
g2.fillRect(380, 340, 100, 65);
// mewarnai engsel pintu
g2.setColor(new Color(0, 0, 0));
g2.fillOval(380, 380, 15, 30);
g2.setColor(Color.black);
BasicStroke tebal = new BasicStroke(3.0f);
g2.setStroke(tebal);
g2.draw(gp);
g2.draw(gp2);
g2.draw(gp3);
g2.draw(gp4);
g2.draw(gp5);
g2.draw(gp6);
g2.draw(gp7);
g2.draw(gp8);
}
public static void main(String[] args) {
JFrame kom = new JFrame();
kom.setTitle("umah gue");
kom.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lukis asa = new lukis();
kom.getContentPane().add(asa);
kom.setSize(800, 600);
kom.setVisible(true);
kom.setLocationRelativeTo(null);
//membuat badan rumah
asa.gambar_kotak_Bressenham(200, 200, 650, -100);
// jendela 1
asa.gambar_kotak_Bressenham(230, 220, 285, 7);
// jendela 2
asa.gambar_kotak_Bressenham(520, 220, 600, 165);
// engsel pintu
asa.gambar_elips_midpoint(400, 400, 10, 20);
}
}
OUTPUT nya
SOURCE CODE nya sebagai berikut
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.GeneralPath;
import javax.swing.*;
import javax.swing.JFrame;
public class lukis extends JPanel {
double x_awal, x_akhir, y_awal, y_akhir, Dx, Dy, parameter, langkah, xincre, yincre, p, x2, y2, x_pusat, y_pusat;
GeneralPath gp = new GeneralPath();
GeneralPath gp2 = new GeneralPath();
GeneralPath gp3 = new GeneralPath();
GeneralPath gp4 = new GeneralPath();
GeneralPath gp5 = new GeneralPath();
GeneralPath gp6 = new GeneralPath();
GeneralPath gp7 = new GeneralPath();
GeneralPath gp8 = new GeneralPath();
GeneralPath gp9 = new GeneralPath();
public lukis () {
setBackground(Color.white);
setLayout(null);
}
public void gambar_garis_dda(int x_awal, int y_awal, int x_akhir, int y_akhir) {
this.x_awal = x_awal;
this.x_akhir = x_akhir;
this.y_awal = y_awal;
Dx = Math.abs(x_akhir - x_awal);
Dy = Math.abs(y_akhir - y_awal);
if (Dx > Dy) {
langkah = Dx;
} else {
langkah = Dy;
}
xincre = (x_akhir - x_awal) / langkah;
yincre = (y_akhir - y_awal) / langkah;
gp.moveTo(x_awal, y_awal);
if (x_akhir - x_awal > 0) {
for (double x = x_awal; x < x_akhir; x += xincre) {
gp.lineTo(x, y_awal);
y_awal += yincre;
}
} else {
for (double x = x_awal; x > x_akhir; x += xincre) {
gp.lineTo(x, y_awal);
y_awal += yincre;
}
}
}
public void gambar_garis_Bressenham(int x_awal, int y_awal, int x_akhir, int y_akhir) {
this.x_awal = x_awal;
this.x_akhir = x_akhir;
this.y_awal = y_awal;
this.y_akhir = y_akhir;
Dx = Math.abs(x_akhir - x_awal);
Dy = Math.abs(y_akhir - y_awal);
parameter = (2 * Dy) - Dx;
this.repaint();
gp.moveTo(x_awal, y_awal);
double xt, yt;
if (x_akhir - x_awal > 0) {
xt = 1;
} else {
xt = -1;
}
if (y_akhir - y_awal > 0) {
yt = 1;
} else {
yt = -1;
}
if (Dx > Dy) {
if (x_akhir - x_awal > 0) {
while (x_awal < x_akhir) {
if (parameter < 0) {
parameter += (2 * Dy);
} else {
y_awal += yt;
parameter = parameter + (2 * Dy) - (2 * Dx);
}
gp.lineTo(x_awal, y_awal);
x_awal += xt;
}
} else {
while (x_awal > x_akhir) {
if (parameter < 0) {
parameter += (2 * Dy);
} else {
y_awal += yt;
parameter = parameter + (2 * Dy) - (2 * Dx);
}
gp.lineTo(x_awal, y_awal);
x_awal += xt;
}
}
} else {
if (y_akhir - y_awal > 0) {
while (y_awal < y_akhir) {
if (parameter < 0) {
parameter += (2 * Dx);
} else {
x_awal += xt;
parameter = parameter + (2 * Dx) - (2 * Dy);
}
gp.lineTo(x_awal, y_awal);
y_awal += yt;
}
} else {
while (y_awal > y_akhir) {
if (parameter < 0) {
parameter += (2 * Dx);
} else {
x_awal += xt;
parameter = parameter + (2 * Dx) - (2 * Dy);
}
gp.lineTo(x_awal, y_awal);
y_awal += yt;
}
}
}
}
public void gambar_kotak_Bressenham(int x_awal, int y_awal, int x_akhir, int y_akhir) {
this.x_awal = x_awal;
this.x_akhir = x_akhir;
this.y_awal = y_awal;
Dx = Math.abs(x_akhir - x_awal);
Dy = Math.abs(y_akhir - y_awal);
parameter = (2 * Dy) - Dx;
this.repaint();
double g = x_awal, h = y_awal;
while (x_awal < x_akhir) {
if (parameter < 0) {
parameter += (2 * Dy);
} else {
y_awal++;
parameter = parameter + (2 * Dy) - (2 * Dx);
}
gp.moveTo(x_awal, y_awal);
x_awal++;
}
gp.lineTo(g, y_awal);
gp.lineTo(g, h);
gp.lineTo(x_awal, h);
gp.lineTo(x_awal, y_awal);
}
public void gambar_bulat_midpoint(int x_pusat, int y_pusat, int r) {
x2 = 0;
y2 = r;
this.x_pusat = x_pusat;
this.y_pusat = y_pusat;
gp.moveTo(x_pusat + x2, y_pusat + y2);
gp2.moveTo(x_pusat - x2, y_pusat + y2);
gp3.moveTo(x_pusat + x2, y_pusat - y2);
gp4.moveTo(x_pusat - x2, y_pusat - y2);
gp5.moveTo(x_pusat + y2, y_pusat + x2);
gp6.moveTo(x_pusat - y2, y_pusat + x2);
gp7.moveTo(x_pusat + y2, y_pusat - x2);
gp8.moveTo(x_pusat - y2, y_pusat - x2);
p = 1 - r;
while (x2 < y2) {
gp.lineTo(x_pusat + x2, y_pusat + y2);
gp2.lineTo(x_pusat - x2, y_pusat + y2);
gp3.lineTo(x_pusat + x2, y_pusat - y2);
gp4.lineTo(x_pusat - x2, y_pusat - y2);
gp5.lineTo(x_pusat + y2, y_pusat + x2);
gp6.lineTo(x_pusat - y2, y_pusat + x2);
gp7.lineTo(x_pusat + y2, y_pusat - x2);
gp8.lineTo(x_pusat - y2, y_pusat - x2);
x2++;
if (p < 0) {
p += (2 * x2) + 6;
} else {
y2--;
p += 2 * (x2 - y2) + 1;
}
this.repaint();
}
}
public void gambar_elips_midpoint(int x_pusat, int y_pusat, double Rx, double Ry) {
double Rx2 = Rx * Rx;
double twoRx2 = 2 * Rx2;
x2 = 0;
double px = 0;
double Ry2 = Ry * Ry;
double twoRy2 = 2 * Ry2;
y2 = Ry;
double py = twoRx2 * y2;
this.x_pusat = x_pusat;
this.y_pusat = y_pusat;
this.p = (Ry2 - (Rx2 * Ry) + (0.25 * Rx2));
gp.moveTo(x_pusat + x2, y_pusat + y2);
gp2.moveTo(x_pusat - x2, y_pusat + y2);
gp3.moveTo(x_pusat + x2, y_pusat - y2);
gp4.moveTo(x_pusat - x2, y_pusat - y2);
while (px < py) {
x2++;
px += twoRy2;
if (p < 0) {
p += Ry2 + px;
} else {
y2--;
py -= twoRx2;
p += Ry2 + px - py;
}
gp.lineTo(x_pusat + x2, y_pusat + y2);
gp2.lineTo(x_pusat - x2, y_pusat + y2);
gp3.lineTo(x_pusat + x2, y_pusat - y2);
gp4.lineTo(x_pusat - x2, y_pusat - y2);
}
this.p = Ry2 * (x2 + 0.5) * (x2 + 0.5) + Rx2 * (y2 - 1) * (y2 - 1) - Rx2 * Ry2;
while (y2 > 0) {
y2--;
py -= twoRx2;
if (p > 0) {
p += Rx2 - py;
} else {
x2++;
px += twoRy2;
p += Ry2 + px - py;
}
gp.lineTo(x_pusat + x2, y_pusat + y2);
gp2.lineTo(x_pusat - x2, y_pusat + y2);
gp3.lineTo(x_pusat + x2, y_pusat - y2);
gp4.lineTo(x_pusat - x2, y_pusat - y2);
}
this.repaint();
}
public void paintComponent(Graphics gambar1) {
super.paintComponents(gambar1);
Graphics2D g2 = (Graphics2D) gambar1;
GradientPaint backs = new GradientPaint(300, 90, new Color(51, 255, 255), 300, 350, new Color(0, 51, 255));
g2.setPaint(backs);
g2.fillRect(0, 0, 900, 900);
// mewarnai badan rumah
g2.setColor(Color.gray);
g2.fillRect(200, 200, 450, 300);
// genteng
g2.setColor(new Color(204, 51, 0));
gp9.moveTo(200, 200);
gp9.lineTo(425, 35);
gp9.lineTo(650, 200);
gp9.closePath();
g2.draw(gp9);
g2.fill(gp9);
// mewarnai jendela 1
g2.setColor(new Color(255, 255, 255));
g2.fillRect(230, 220, 108, 55);
// mewarnai jendela 2
g2.setColor(new Color(255, 255, 255));
g2.fillRect(520, 220, 108, 55);
// mewarnai pintu
g2.setColor(Color.yellow);
g2.fillRect(380, 340, 100, 160);
// mewarnai bundar atas pintu
g2.setColor(Color.orange);
g2.fillOval(380, 300, 100, 100);
// mewarnai pintu
g2.setColor(Color.yellow);
g2.fillRect(380, 340, 100, 65);
// mewarnai engsel pintu
g2.setColor(new Color(0, 0, 0));
g2.fillOval(380, 380, 15, 30);
g2.setColor(Color.black);
BasicStroke tebal = new BasicStroke(3.0f);
g2.setStroke(tebal);
g2.draw(gp);
g2.draw(gp2);
g2.draw(gp3);
g2.draw(gp4);
g2.draw(gp5);
g2.draw(gp6);
g2.draw(gp7);
g2.draw(gp8);
}
public static void main(String[] args) {
JFrame kom = new JFrame();
kom.setTitle("umah gue");
kom.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lukis asa = new lukis();
kom.getContentPane().add(asa);
kom.setSize(800, 600);
kom.setVisible(true);
kom.setLocationRelativeTo(null);
//membuat badan rumah
asa.gambar_kotak_Bressenham(200, 200, 650, -100);
// jendela 1
asa.gambar_kotak_Bressenham(230, 220, 285, 7);
// jendela 2
asa.gambar_kotak_Bressenham(520, 220, 600, 165);
// engsel pintu
asa.gambar_elips_midpoint(400, 400, 10, 20);
}
}
OUTPUT nya
Langganan:
Komentar (Atom)


















