MID TEST GRAFIKA KOMPUTER TENTANG ROTASI DAN TRANSLASI

Nama : Lukas Sako
Nim   : 11110080
Kelas : B


MID TEST GRAFIKA KOMPUTER

SOAL : 
       1. Rotasi titik A,B,C  terhadap titik X(200,200) dengan sudut pusat  45 derajat. 
       2.  Translasi terhadap T(50 dan 100) dari kedua nomor tersebut:
a.       Buatlah lisning programnya !
b.      Tentukan titik-titik hasil  rotasi A translasinya !!!

JAWAB :
1.      Rotasi titik A,B,C  terhadap titik X(200,200) dengan sudut pusat  45 derajat
Berikut ini  lisning program untuk membuat  rotasi:

package LUKAS_SAKO;

import java.awt.*;
import java.awt.event.*;
public class MID_ROTASI extends Frame implements ActionListener{
    int x = 200;
    int y = 200;
public static void main(String[] args) {
    Frame frame = new MID_ROTASI();
    frame.setSize(640, 480);
    frame.setVisible(true);
}
public MID_ROTASI() {
setTitle("MID_ROTASI");
// create menu
    MenuBar mb = new MenuBar();
    setMenuBar(mb);
    Menu menu = new Menu("File");
    mb.add(menu);
    MenuItem mi = new MenuItem("Exit");
    mi.addActionListener(this);
    menu.add(mi);
// end program when window is closed
    WindowListener l = new WindowAdapter()  {
            @Override
    public void windowClosing(WindowEvent ev) {
    System.exit(0);
    }
    };
this.addWindowListener(l);
// mouse event handler
MouseListener mouseListener = new MouseAdapter() {
            @Override
public void mouseClicked(MouseEvent ev) {
    x = ev.getX();
    y = ev.getY();
    repaint();
}
};
addMouseListener(mouseListener);
}

    @Override
public void paint(Graphics g) {
int xasalA = 150; int yasalA = 100;
int xasalB = 100; int yasalB = 250;
int xasalC = 200; int yasalC = 250;

int sudut = 45;

g.setColor(Color.red);
g.drawLine(xasalA,yasalA, xasalB,yasalB);
g.drawLine(xasalB,yasalB,xasalC,yasalC);

long xA = Math.round(x+(xasalA-x)*Math.cos(sudut)-(yasalA-y)*Math.sin(sudut));
long yA = Math.round(x+(xasalA-x)*Math.sin(sudut)-(yasalA-y)*Math.cos(sudut));
long xB = Math.round(x+(xasalB-x)*Math.cos(sudut)-(yasalB-y)*Math.sin(sudut));
long yB = Math.round(x+(xasalB-x)*Math.sin(sudut)-(yasalB-y)*Math.cos(sudut));
long xC = Math.round(x+(xasalC-x)*Math.cos(sudut)-(yasalC-y)*Math.sin(sudut));
long yC = Math.round(x+(xasalC-x)*Math.sin(sudut)-(yasalC-y)*Math.cos(sudut));

int xA1 = (int)xA; int yA1 = (int)yA;
int xB1 = (int)xB; int yB1 = (int)yB;
int xC1 = (int)xC; int yC1 = (int)yC;

g.drawLine(xA1,yA1, xB1,yB1);
g.drawLine(xB1,yB1, xC1,yC1);

}
    @Override
public void actionPerformed(ActionEvent ev) {
String command = ev.getActionCommand();
if ("Exit".equals(command)) {
System.exit(0);
}
}
}
Dan berikut adalah hasilnya setelah diruning



1.      Translasi terhadap T(50 dan 100) dari kedua nomor tersebut
a.       Lisning program untuk membuat  translasi sebagai berikut:
package LUKAS_SAKO;

import java.awt.*;
import java.awt.event.*;
public class TRANSLASI extends Frame implements ActionListener{
    int x = 50;
    int y = 100;
public static void main(String[] args) {
    Frame frame = new TRANSLASI();
    frame.setSize(640, 480);
    frame.setVisible(true);
}
public TRANSLASI() {
setTitle("MID TRANSLASI");
// create menu
    MenuBar mb = new MenuBar();
    setMenuBar(mb);
    Menu menu = new Menu("File");
    mb.add(menu);
    MenuItem mi = new MenuItem("Exit");
    mi.addActionListener(this);
    menu.add(mi);
// end program when window is closed
    WindowListener l = new WindowAdapter()  {
    public void windowClosing(WindowEvent ev) {
    System.exit(0);
    }
    };
this.addWindowListener(l);
// mouse event handler
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent ev) {
   int x = 50;
   int y = 100;
    repaint();
}
};
addMouseListener(mouseListener);
}

public void paint(Graphics g) {

g.drawLine(80, 80, 150, 200);
g.drawLine(80+x, 80+y, 150+x, 200+y);
}
public void actionPerformed(ActionEvent ev) {
String command = ev.getActionCommand();
if ("Exit".equals(command)) {
System.exit(0);
}
}
}

b.      titik-titik hasil  rotasi A translasinya dan hasilnya seperti berikut

1 Komentar

  1. kita juga punya nih artikel mengenai 'Grafik Komputer', silahkan dikunjungi dan dibaca , berikut linknya
    http://repository.gunadarma.ac.id/bitstream/123456789/836/1/D87-D95_Yusuf.pdf
    trimakasih
    semoga bermanfaat

    BalasHapus
Lebih baru Lebih lama