Kom Graf
Kom Graf
java.applet.Applet { }
Area(canvas.gp); }
public void paint(Graphics g) {
canvas.area1.intersect(canvas.area2);
canvas.repaint(); Graphics2D g2D = (Graphics2D)
} g;
g2D.setStroke(new setSize(300,300);
BasicStroke(2.0f)); setBackground(Color.WHITE);
g2D.draw(area1); setVisible(true);
g2D.draw(area2); }
} public void paint ( Graphics g ) {
} Graphics2D g2d = ( Graphics2D ) g;
} g2d.setColor(Color.RED);
Output : g2d.draw(a1);
g2d.draw(a2);
g2d.draw(a3);
g2d.draw(a4);
a1.intersect(a2);
a2.intersect(a4);
a4.intersect(a3);
15. import javax.swing.*;
a3.intersect(a5);
import java.awt.*;
}
import java.awt.geom.*;
public static void main ( String []
public class Tugas extends JDialog {
arguments ) {
Ellipse2D.Double e2dd1 = new
new Tugas();
Ellipse2D.Double(100,50,100,100);
}
Ellipse2D.Double e2dd2 = new
}
Ellipse2D.Double(50,100,100,100);
Output :
Ellipse2D.Double e2dd3 = new
Ellipse2D.Double(150,100,100,100);
Ellipse2D.Double e2dd4 = new
Ellipse2D.Double(100,150,100,100);
Ellipse2D.Double e2dd5 = new
Ellipse2D.Double(100,50,100,100);
Area a1 = new Area(e2dd1);
Area a2 = new Area(e2dd2);
16. import java.awt.*;
Area a3 = new Area(e2dd3);
import java.awt.geom.*;
Area a4 = new Area(e2dd4);
import javax.swing.*;
Area a5 = new Area(e2dd5);
public class AreaExclusiveOr extends
public Tugas() {
JPanel {
setTitle("Tugas");
DrawingCanvas canvas;
public AreaExclusiveOr() { area1 = new Area(gp);
canvas = new DrawingCanvas(); ellipse = new Ellipse2D.Double(w
add(canvas); / 4, h / 4, w / 2, h / 2);
canvas.area1 = new area2 = new Area(ellipse);
Area(canvas.gp); }
canvas.area1.exclusiveOr(canvas.area2); public void paint(Graphics g) {
canvas.repaint(); Graphics2D g2D = (Graphics2D)
} g;
public static void main(String arg[]) { g2D.setStroke(new
JFrame frame = new JFrame(); BasicStroke(2.0f));
frame.setDefaultCloseOperation(JFrame. g2D.draw(area1);
EXIT_ON_CLOSE); g2D.draw(area2);
frame.getContentPane().add("Center", }
new AreaExclusiveOr()); }
frame.pack(); }
frame.setSize(new Dimension(400, Output :
300));
frame.setVisible(true);
}
class DrawingCanvas extends Canvas {
GeneralPath gp;
Ellipse2D ellipse; 17. import java.awt.*;
Area area1, area2; import java.awt.event.*;
public DrawingCanvas() { import java.awt.font.*;
setBackground(Color.white); import javax.swing.border.*;
setSize(350, 250); import java.awt.geom.*;
int w = getWidth(); import javax.swing.*;
int h = getHeight(); public class xor extends JApplet {
gp = new GeneralPath(); Ellipse2D.Double circle, oval, leaf,
gp.moveTo(w / 8, h / 2); stem;
gp.lineTo(w / 2, h / 4); Area circ, ov, leaf1, leaf2, leaf3, leaf4,
gp.lineTo(7 * w / 8, h / 2); st2, st1;
gp.lineTo(w / 2, 3 * h / 4); public void init() {
gp.closePath(); circle = new Ellipse2D.Double();
oval = new Ellipse2D.Double(); public void
leaf = new Ellipse2D.Double(); windowClosing(WindowEvent e) {
stem = new Ellipse2D.Double(); System.exit(0);
circ = new Area(circle); }
ov = new Area(oval); });
leaf1 = new Area(leaf); JApplet applet = new xor();
leaf2 = new Area(leaf); f.getContentPane().add("Center",
leaf3 = new Area(leaf); applet);
leaf4 = new Area(leaf); applet.init();
st1 = new Area(stem); f.pack();
st2 = new Area(stem); f.setSize(new Dimension(500, 500));
setBackground(Color.white); //(width, heigth)
} f.show();
public void paint(Graphics g) { }
Graphics2D g2d = (Graphics2D) g; }
Dimension d = getSize(); Output :
g2d.setColor(Color.blue);
leaf.setFrame(100, 100, 100, 100);
leaf1 = new Area(leaf);
leaf.setFrame(175, 100, 100, 100);
leaf2 = new Area(leaf);
leaf2.exclusiveOr(leaf1);
leaf.setFrame(175, 175, 100, 100);
leaf3 = new Area(leaf); 18. import java.awt.*;
} public AreaSubtracting() {
WindowAdapter() { Area(canvas.gp);
canvas.area1.subtract(canvas.area2);
canvas.repaint(); Graphics2D g2D = (Graphics2D)
} g;
public static void main(String arg[]) { g2D.setStroke(new
JFrame frame = new JFrame(); BasicStroke(2.0f));
frame.setDefaultCloseOperation(JFrame. g2D.draw(area1);
EXIT_ON_CLOSE); g2D.draw(area2);
frame.getContentPane().add("Center", }
new AreaSubtracting()); }
frame.pack(); }
frame.setSize(new Dimension(400, Output :
300));
frame.setVisible(true);
}
class DrawingCanvas extends Canvas {
GeneralPath gp;
Ellipse2D ellipse; 19. Class tes.java
Area area1, area2; import java.awt.*;
public DrawingCanvas() { import java.awt.event.*;
setBackground(Color.white); import javax.swing.*;
setSize(350, 250); import java.awt.geom.*;
int w = getWidth(); class tes extends JPanel {
int h = getHeight(); public tes() {
gp = new GeneralPath(); setPreferredSize(new
gp.moveTo(w / 8, h / 2); Dimension(760, 400));
gp.lineTo(w / 2, h / 4); }
gp.lineTo(7 * w / 8, h / 2); public void paintComponent(Graphics
gp.lineTo(w / 2, 3 * h / 4); g) {
gp.closePath(); Graphics2D g2 = (Graphics2D)g;
area1 = new Area(gp); Shape s1 = new
ellipse = new Ellipse2D.Double(w Ellipse2D.Double(100, 100, 100, 100);
/ 4, h / 4, w / 2, h / 2); Shape s2 = new
area2 = new Area(ellipse); Ellipse2D.Double(150, 150, 100, 100);
} Shape s3 = new
public void paint(Graphics g) { Ellipse2D.Double(100, 200 , 100, 100);
Shape s4 = new
Ellipse2D.Double(50, 150, 100, 100); frame.setDefaultCloseOperation(JFrame.
Shape s5 = new EXIT_ON_CLOSE);
Ellipse2D.Double(100, 100, 100, 100); JApplet applet = new
Shape s6 = new IntersectArea1();
Ellipse2D.Double(150, 150, 100, 100); applet.init();
//area geometri pertama. frame.getContentPane().add(applet);
Area a1 = new Area(s1); frame.pack();
Area a2 = new Area(s2); frame.setVisible(true);
Area a3 = new Area(s3); }
Area a4 = new Area(s4); public void init() {
Area a5 = new Area(s5); JPanel panel = new tes();
Area a6 = new Area(s6); getContentPane().add(panel);
a1.intersect(a4); }
a2.intersect(a3); }
a3.intersect(a4); Output :
a5.intersect(a6);
g2.setPaint(Color.green);
g2.fill(a1);
g2.fill(a2);
g2.fill(a3);
g2.fill(a5); 20. import java.awt.*;
} import java.awt.event.*;
} import javax.swing.*;
Class IntersectArea1.java import java.awt.geom.*;
import java.awt.*; import java.applet.Applet;
import java.awt.event.*; import java.awt.Graphics;
import javax.swing.*; import java.awt.Color;
import java.awt.geom.*; public class oke extends Applet {
public class IntersectArea1 extends public void paint(Graphics g) {
JApplet { for (int i=0; i<1000;i++) {
public static void main(String s[]) { g.drawLine(0,10*i,i*10,1000);
JFrame frame = new JFrame(); g.drawLine(0,10*i,1500,10*i);
frame.setTitle("Intersect Area"); }
Graphics2D g2 = (Graphics2D)g; g.fillRoundRect(70, 120, 30, 75, 20,
Shape s1 = new 20);
Ellipse2D.Double(0,0,100,100); g.fillRoundRect(100, 100, 90, 20,
Shape s2 = new 20, 20);
Ellipse2D.Double(60,0,100,100); g.fillRect(110, 120, 70, 50);
Area a1 = new Area(s1); g.fillOval(60, 210, 40, 40);
Area a2 = new Area(s2); g.fillOval(90, 210, 40, 40);
g2.translate(20,50); g.fillOval(120, 200, 50, 50);
g2.scale(1.5,1.5); g.setColor(Color.blue);
BasicStroke bsThickLine= new g.fillRoundRect(78, 125, 15, 25, 5,
BasicStroke(10.0f); 5);
a1.exclusiveOr(a2); g.setColor(Color.green);
g2.draw(a1); g.fillRoundRect(57, 155, 55, 50, 5,
} 5);
} g.setColor(Color.red);
Output : g.fillRoundRect(105, 104, 78, 10,
10, 10);
g.setColor(Color.yellow);
g.fillRoundRect(120, 122, 50, 85,
10, 10);
g.setColor(Color.black);
g.fillRoundRect(130, 130, 30, 40,
10, 10);
g.setColor(Color.white);
g.fillRoundRect(135, 135, 20, 20,
10, 10);
2. Tuliskan coding untuk paint method untuk dua gambar object dibawah (jika perlu, uraikan cara
mengerjakannya). Ket: gambar A menggunakan objek Polygon, gambar B menggunakan
Ellipse2D (sama konsep dengan drawOval menggunakan Area).
a. Gunakan Polygon b. Gunakan Area
3. Gambarkan output dari coding dibawah (ditampilkan dengan akurat), size = 500*500!
import javax.swing.*;
import java.awt.*;
class UAS extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
int r=30, e=45, h=65, t=33;
for(int i=0;i<56;i++) {
t=i%4;
g.drawRect(r,e+t*h,43,56);
g.drawOval(183,135,65,65);
g.drawLine(73,e+t*h,216,166);
g.drawLine(73,e+56+t*h,216,166);
}
}
public static void main(String[] xyz) {
JFrame f = new JFrame();
f.getContentPane().add(new UAS());
f.setSize(500,500);
f.setVisible(true);
}
}
Jawab :
CONTOH SOAL 2 !
1. Tuliskan coding untuk paint method untuk dua gambar object dibawah dengan metode
geometris AREA (jika perlu, uraikan cara mengerjakannya). Ket: gambar A menggunakan objek
Rectangle2D (sama konsep dengan drawRect), gambar B menggunakan Ellipse2D (sama
konsep dengan drawOval).
a. . b.
CONTOH SOAL 3 !
Tuliskan Paint Component-nya saja beserta logic, nomor 1 & 2!
1. Terdapat angka pada lingkaran kiri atas, buatlah itu
3 digit terakhir NPM anda. Buatlah dengan metode
AREA.
2. Tuliskan coding untuk paint method untuk dua gambar object dibawah dengan metode
geometris AREA (jika perlu uraikan cara mengerjakannya). Ket: gambar A. Menggunakan objek
Rectangle2D (sama konsep dengan drawRect), B. baca keterangan dibawah. *note: perhatikan
dengan teliti
a. c b.
1
5 5
4 2
5 5
3
3. Gambarkan output dari coding dibawah (ditampilkan dengan akurat), size = 500*500)!
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
public class BasicSample2Dtwo extends JPanel {
public static void main(String[] args) {
JFrame f = new JFrame("Basic Sample 2D");
BasicSample2Dtwo bs = new BasicSample2Dtwo();
f.getContentPane().add("Center",bs);
f.pack();
f.setSize(new Dimension(300,300));
f.setVisible(true);
}
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
Shape s1 = new Ellipse2D.Double(0, 0, 100, 100);
Shape s2 = new Ellipse2D.Double(60, 0, 100, 100);
Shape s3 = new Ellipse2D.Double(0, 80, 100, 100);
Shape s4 = new Ellipse2D.Double(60, 80, 100, 100);
Area a1 = new Area(s1);
Area a2 = new Area(s2);
Area a3 = new Area(s3);
Area a4 = new Area(s4);
g2.setPaint(Color.black);
a1.subtract(a2);
a2.subtract(a4);
a4.subtract(a3);
a3.subtract(a1);
g2.draw(a1);
g2.draw(a2);
g2.draw(a4);
g2.draw(a3);
g2.drawString ("123",25,50);
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.red);
g2d.translate(100, 100);
g2d.drawRect(0, 0, 80, 50);
g2d.rotate(Math.PI/4.0);
g2d.setColor(Color.blue);
g2d.drawRect(0, 0, 100, 100);
g2d.translate(100, 100);
g2d.rotate(Math.PI/4.0);
g2d.setColor(Color.yellow);
g2d.drawRect(0, 0, 80, 50);
g2d.rotate(Math.PI/4.0);
g2d.fillRect(0, 0, 80, 50);
g2d.rotate(Math.PI/4.0);
g2d.scale(1.5,1.5);
g2d.scale(0.5,0.5);
g2d.drawRect(0, 0, 80, 50);
g2d.translate(-100,-100);
g2d.drawRect(-100, -100, 100, 100);
g2d.rotate(Math.PI/4.0);
g2d.drawRect(-100, -100, 100, 100);
}
}
Jawab :