Sunteți pe pagina 1din 6

Universitatea Tehnic a Moldovei

FCIM
Catedra Calculatoare

RAPORT
la lucrarea de laborator nr. 1
la Grafica pe Calculator

Tema: SINTEZAREA FIGURILOR GRAFICE

Varianta 13

A efectuat: st. gr. C-151 Enachi Nicolae

A verificat: Lector superior Constantin Plotnic

Chiinu 2017
0
Scopul lucrrii: Obinerea cunotinelor practice n sinteza figurilor grafice.

Sarcina:
1. De a elabora un program pentru sintezarea i afiarea figurilor grafice conform variantei 13;
2. De a afia figuri sintezate n diferite pori de vizualizare;
3. De a utiliza operaiuni de salvare i restaurare a imaginilor n/din fiiere;

Codul Programului:
package com.graphics;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Arc2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Path2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.awt.image.*;
class MyPanel extends JPanel {
private static boolean check,checkl,checkr,checkt,checkp,checkc,checke,checksc,checkse,img;
public void paintComponent(Graphics g) {
super.paintComponent(g);
removeAll();
g.drawImage(setBackground(), 0, 0,null);
JButton b = new JButton("Prism");
b.addActionListener(e -> {
check=true;
this.repaint();
});
b.setBounds(10,170,80,30);
this.add(b);
Prism(g);
JButton b1 = new JButton("Line");
b1.addActionListener(e -> {
checkl=true;
this.repaint();
});
b1.setBounds(10,10,80,30);
this.add(b1);
Line(g);
JButton b2 = new JButton("Rect");
b2.addActionListener(e -> {
checkr=true;
this.repaint();
});
b2.setBounds(10,90,80,30);
this.add(b2);
Rect(g);

1
JButton b3 = new JButton("Triangle");
b3.addActionListener(e -> {
checkt=true;
this.repaint();
});
b3.setBounds(10,50,80,30);
this.add(b3);
Triangle(g);
JButton b4 = new JButton("Polygon");
b4.addActionListener(e -> {
checkp=true;
this.repaint();
});
b4.setBounds(10,130,80,30);
this.add(b4);
Polygon(g);
JButton b5 = new JButton("Circle");
b5.addActionListener(e -> {
checkc=true;
this.repaint();
});
b5.setBounds(10,210,80,30);
this.add(b5);
Circle(g);
JButton b6 = new JButton("Elipse");
b6.addActionListener(e -> {
checke=true;
this.repaint();
});
b6.setBounds(10,250,80,30);
this.add(b6);
Elipse(g);
Graphics2D g2 = (Graphics2D) g;
JButton b7 = new JButton("H-Circle");
b7.addActionListener(e -> {
checksc=true;
this.repaint();
});
b7.setBounds(10,290,80,30);
this.add(b7);
SecCircle(g2);
JButton b8 = new JButton("H-Elipse");
b8.addActionListener(e -> {
checkse=true;
this.repaint();
});
b8.setBounds(10,330,80,30);
this.add(b8);
SecElipse(g2);
JButton b9 = new JButton("Erase");
b9.addActionListener(e -> {
this.repaint();
});
b9.setBounds(710,10,80,30);
this.add(b9);
JButton b10 = new JButton("Save");
b10.addActionListener(e -> {
try {
2
ScreenShot();
} catch (AWTException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
});
b10.setBounds(710,50,80,30);
this.add(b10);
JButton b11 = new JButton("Open");
b11.addActionListener(e -> {
img=true;
this.repaint();
});
OpenImage(g);
b11.setBounds(710,90,80,30);
this.add(b11);
}
private void Prism (Graphics g){
int xPolyP[] = {350,550,550,530,530,330,350,330,330,530,530,550};
int yPolyP[] = {150,150,200,240,190,190,150,190,240,240,190,150};
int xPolyPf[] = {350,330,330,530,550,550};
int yPolyPf[] = {150,190,240,240,200,150};
if(check) {
g.setColor(Color.YELLOW);
g.fillPolygon(xPolyPf, yPolyPf,6);
g.setColor(Color.BLUE);
g.drawPolygon(xPolyP, yPolyP,12);
check=false;
g.setColor(Color.BLACK);
}
}
private void Line (Graphics g){
if(checkl) {
g.setColor(Color.RED);
g.drawLine(150, 350, 700, 50);
checkl=false;
g.setColor(Color.BLACK);
}
}
private void Rect (Graphics g){
if(checkr) {
g.setColor(Color.CYAN);
g.fillRect(250, 80, 400, 200);
g.setColor(Color.RED);
g.drawRect (250, 80, 400, 200);
checkr=false;
g.setColor(Color.BLACK);
}
}
private void Triangle (Graphics g){
int xPolyT[] = {450,620,280};
int yPolyT[] = {80,300,300};
if(checkt) {
g.setColor(Color.GREEN);
g.fillPolygon(xPolyT, yPolyT,3);
g.setColor(Color.BLACK);
g.drawPolygon(xPolyT, yPolyT,3);
3
checkt=false;
g.setColor(Color.BLACK);
}
}
private void Polygon (Graphics g){
if(checkp) {
Polygon p = new Polygon();
for (int i = 0; i < 17; i++)
p.addPoint((int)(440 + 180 * Math.cos(i * 2 * Math.PI / 17)),
(int) (190 + 180 * Math.sin(i * 2 * Math.PI / 17)));
g.drawPolygon(p);
checkp=false;
}
}
private void Circle (Graphics g){
if(checkc) {
g.setColor(Color.CYAN);
g.fillRoundRect(350,80,200,200,360,360);
g.setColor(Color.ORANGE);
g.drawOval(350,80,200,200);
checkc=false;
g.setColor(Color.BLACK);
}
}
private void Elipse (Graphics g){
if(checke) {
g.setColor(Color.PINK);
g.fillRoundRect(350,120,200,130,300,300);
g.setColor(Color.BLACK);
g.drawOval(350,120,200,130);
checke=false;
g.setColor(Color.BLACK);
}
}
private void SecCircle (Graphics2D g2){
if(checksc) {
g2.draw(new Arc2D.Double(350, 80, 200, 200, 0, 180, Arc2D.PIE));
checksc=false;
}
}
private void SecElipse (Graphics2D g2){
if(checkse) {
g2.draw(new Arc2D.Double(350, 120, 200, 130, 0, 180, Arc2D.PIE));
checkse=false;
}
}
private void ScreenShot() throws AWTException, IOException {
Rectangle r = new Rectangle(200, 30, 512, 360);
BufferedImage bi = ScreenImage.createImage(r);
ScreenImage.writeImage(bi, "ScreenShot.jpg");
}
private void OpenImage(Graphics g){
if(img) {
g.drawImage(getImage(), 200, 0, null);
img = false;
}
}
private Image getImage(){
4
Image i1=null;
try {
i1 = ImageIO.read(new File("ScreenShot.jpg"));
} catch (IOException ex) {
Logger.getLogger(MyPanel.class.getName()).log(Level.SEVERE, null, ex);
}
return i1;
}
private Image setBackground(){
Image i1=null;
try {
i1 = ImageIO.read(new File("Background.jpg"));
} catch (IOException ex) {
Logger.getLogger(MyPanel.class.getName()).log(Level.SEVERE, null, ex);
}
return i1;
}
}
class MyFrame extends JFrame {
MyFrame() {
this.setTitle("Graphics");
this.setResizable(false);
this.setSize(800, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new MyPanel());
}}
public class Lab1GC {
public static void main(String[] args) {
MyFrame f = new MyFrame();
f.setVisible(true);
}
}
Rezultatele Testrii:

Concluzia:

n urma efecturii lucrrii respective de laborator am nvat folosirea funciilor


necesare pentru lucrul cu obiectele grafice n limbajul Java precum i stocarea unei imagini
capturate ntr-un fiier precum i vizualizarea acesteia din cadrul ferestrei de lucru. Tot n
lucrarea respectiv am utilizat butoanele ca elemente de interaciune cu aplicaia creat.
5

S-ar putea să vă placă și

  • Lucrarea de Laborator NR 5 POO
    Lucrarea de Laborator NR 5 POO
    Document4 pagini
    Lucrarea de Laborator NR 5 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Electr Lab5
    Electr Lab5
    Document4 pagini
    Electr Lab5
    Nickolae Enachi
    Încă nu există evaluări
  • Laborator-3 MMC
    Laborator-3 MMC
    Document4 pagini
    Laborator-3 MMC
    Dan
    Încă nu există evaluări
  • PC Raport 6 7.odt
    PC Raport 6 7.odt
    Document16 pagini
    PC Raport 6 7.odt
    Trifan Petru
    Încă nu există evaluări
  • Laborator 4 GC Cucu Eugeniu Raport
    Laborator 4 GC Cucu Eugeniu Raport
    Document4 pagini
    Laborator 4 GC Cucu Eugeniu Raport
    Cucu Eugen
    Încă nu există evaluări
  • Grafica Laborator Nr.2
    Grafica Laborator Nr.2
    Document8 pagini
    Grafica Laborator Nr.2
    Cebotari Ion
    100% (1)
  • Raport GC Lab 4
    Raport GC Lab 4
    Document2 pagini
    Raport GC Lab 4
    Nickolae Enachi
    Încă nu există evaluări
  • Raport GC Lab 4
    Raport GC Lab 4
    Document2 pagini
    Raport GC Lab 4
    Nickolae Enachi
    Încă nu există evaluări
  • TW Lab4
    TW Lab4
    Document8 pagini
    TW Lab4
    Dan
    Încă nu există evaluări
  • MMC Lab3 Rap
    MMC Lab3 Rap
    Document4 pagini
    MMC Lab3 Rap
    I LOVE ME
    Încă nu există evaluări
  • Grafica Pe Calculator Lab 1 Java
    Grafica Pe Calculator Lab 1 Java
    Document4 pagini
    Grafica Pe Calculator Lab 1 Java
    OpreaEugen
    Încă nu există evaluări
  • GC Lab 3
    GC Lab 3
    Document3 pagini
    GC Lab 3
    DanuIepuras
    Încă nu există evaluări
  • LFA Lab - 2
    LFA Lab - 2
    Document15 pagini
    LFA Lab - 2
    RoscaFlorin
    100% (1)
  • TW Lab5
    TW Lab5
    Document3 pagini
    TW Lab5
    Dan
    Încă nu există evaluări
  • Lab 2 MMC Boj
    Lab 2 MMC Boj
    Document12 pagini
    Lab 2 MMC Boj
    Andrian Brinzan
    Încă nu există evaluări
  • TAP Lab6 Popov Biatrice - CR 191
    TAP Lab6 Popov Biatrice - CR 191
    Document6 pagini
    TAP Lab6 Popov Biatrice - CR 191
    Alina Axenti
    Încă nu există evaluări
  • Sofroni Maxim Ai-211 MN Lab3
    Sofroni Maxim Ai-211 MN Lab3
    Document7 pagini
    Sofroni Maxim Ai-211 MN Lab3
    Максим Софрони
    Încă nu există evaluări
  • Lab 4 MN
    Lab 4 MN
    Document3 pagini
    Lab 4 MN
    nn nnn
    Încă nu există evaluări
  • Grafica Laborator Nr.3
    Grafica Laborator Nr.3
    Document5 pagini
    Grafica Laborator Nr.3
    Cebotari Ion
    100% (2)
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • NR 4
    NR 4
    Document7 pagini
    NR 4
    Graid Icen
    Încă nu există evaluări
  • Lab 6 Poo
    Lab 6 Poo
    Document5 pagini
    Lab 6 Poo
    Alex Tronciu
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • Laborator-2mmc Balan Ion
    Laborator-2mmc Balan Ion
    Document12 pagini
    Laborator-2mmc Balan Ion
    Ion Bn
    Încă nu există evaluări
  • Lab MMC2
    Lab MMC2
    Document5 pagini
    Lab MMC2
    Maxim
    Încă nu există evaluări
  • Lab 2 POO AI-191
    Lab 2 POO AI-191
    Document8 pagini
    Lab 2 POO AI-191
    Carolin
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document10 pagini
    Lab 1
    Ion Cornea
    Încă nu există evaluări
  • Lab1 GC
    Lab1 GC
    Document8 pagini
    Lab1 GC
    Andrei Barbalat
    Încă nu există evaluări
  • LFA Lab - 1
    LFA Lab - 1
    Document10 pagini
    LFA Lab - 1
    RoscaFlorin
    100% (1)
  • MMC Lab2
    MMC Lab2
    Document6 pagini
    MMC Lab2
    Mihail Boran
    Încă nu există evaluări
  • POO Lab7
    POO Lab7
    Document6 pagini
    POO Lab7
    Dani Ela
    Încă nu există evaluări
  • Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Document4 pagini
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Ion Damaschin
    Încă nu există evaluări
  • Raport: La Disciplina Metode Și Modele de Calcul 1
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Document9 pagini
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Anya Mr
    Încă nu există evaluări
  • Laborator 1 C
    Laborator 1 C
    Document17 pagini
    Laborator 1 C
    Dorin Graur
    Încă nu există evaluări
  • Lab 6 Cazacu POO
    Lab 6 Cazacu POO
    Document5 pagini
    Lab 6 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Laboratorul 2 PPE
    Laboratorul 2 PPE
    Document4 pagini
    Laboratorul 2 PPE
    crismaruion
    Încă nu există evaluări
  • Laborator nr1 SDA
    Laborator nr1 SDA
    Document25 pagini
    Laborator nr1 SDA
    Iulian Decuseara
    Încă nu există evaluări
  • Laborator nr.3 POO
    Laborator nr.3 POO
    Document6 pagini
    Laborator nr.3 POO
    MARYAN Pătru
    Încă nu există evaluări
  • MMC2 Modulul2
    MMC2 Modulul2
    Document16 pagini
    MMC2 Modulul2
    ViorelRotari
    Încă nu există evaluări
  • Laborator 5 POO
    Laborator 5 POO
    Document6 pagini
    Laborator 5 POO
    Constantin Palita
    Încă nu există evaluări
  • Lab NR 4 MMC2 Duca Dumitru TI 194
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Document11 pagini
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Santa Claus
    Încă nu există evaluări
  • Lucrare de Laborator nr.2.
    Lucrare de Laborator nr.2.
    Document8 pagini
    Lucrare de Laborator nr.2.
    ionperu
    100% (2)
  • Amoo 1
    Amoo 1
    Document8 pagini
    Amoo 1
    AlionaCrigan
    Încă nu există evaluări
  • Lab 4 Apa
    Lab 4 Apa
    Document21 pagini
    Lab 4 Apa
    crismaruion
    Încă nu există evaluări
  • Lab2 MN CR-212 V14
    Lab2 MN CR-212 V14
    Document8 pagini
    Lab2 MN CR-212 V14
    Tabureanu Marian
    Încă nu există evaluări
  • Metode Și Modele de Calcul 2
    Metode Și Modele de Calcul 2
    Document6 pagini
    Metode Și Modele de Calcul 2
    I LOVE ME
    Încă nu există evaluări
  • Lab 4-5 SDA V10
    Lab 4-5 SDA V10
    Document13 pagini
    Lab 4-5 SDA V10
    Dima Cucu
    Încă nu există evaluări
  • Lab 2 BTD
    Lab 2 BTD
    Document14 pagini
    Lab 2 BTD
    megadanyx
    Încă nu există evaluări
  • Raport 5 CDE
    Raport 5 CDE
    Document7 pagini
    Raport 5 CDE
    crismaruion
    Încă nu există evaluări
  • TW Lab 5
    TW Lab 5
    Document4 pagini
    TW Lab 5
    danielploaia
    Încă nu există evaluări
  • Evaluarea 1 TSSS, Varianta 2
    Evaluarea 1 TSSS, Varianta 2
    Document2 pagini
    Evaluarea 1 TSSS, Varianta 2
    Alex Tronciu
    Încă nu există evaluări
  • Lab 1 PPE
    Lab 1 PPE
    Document4 pagini
    Lab 1 PPE
    King 79
    Încă nu există evaluări
  • Ppe 1
    Ppe 1
    Document5 pagini
    Ppe 1
    Victor Lungu
    Încă nu există evaluări
  • SDAlab 6
    SDAlab 6
    Document1 pagină
    SDAlab 6
    Витёк Мужичёк
    Încă nu există evaluări
  • AMOO Lab2.Use Case
    AMOO Lab2.Use Case
    Document5 pagini
    AMOO Lab2.Use Case
    Dorin Gribincea
    Încă nu există evaluări
  • Lab1 Po
    Lab1 Po
    Document7 pagini
    Lab1 Po
    Alina Axenti
    Încă nu există evaluări
  • Lab7 POO
    Lab7 POO
    Document10 pagini
    Lab7 POO
    Grosu Elena
    Încă nu există evaluări
  • Grafica Pe Calculator Lab 1 Java
    Grafica Pe Calculator Lab 1 Java
    Document4 pagini
    Grafica Pe Calculator Lab 1 Java
    Calc 182
    Încă nu există evaluări
  • Paoo C12 2021
    Paoo C12 2021
    Document66 pagini
    Paoo C12 2021
    LimonCello
    Încă nu există evaluări
  • Proiecte
    Proiecte
    Document10 pagini
    Proiecte
    stefansimply
    Încă nu există evaluări
  • Java & Javascript
    Java & Javascript
    Document79 pagini
    Java & Javascript
    Trifut Ciprian
    Încă nu există evaluări
  • Java - Lab1 Ceas Analogic, Formaţi Imagine. Utilizaţi Un Timer Pentru A Actualiza În Fiecare Secundă
    Java - Lab1 Ceas Analogic, Formaţi Imagine. Utilizaţi Un Timer Pentru A Actualiza În Fiecare Secundă
    Document5 pagini
    Java - Lab1 Ceas Analogic, Formaţi Imagine. Utilizaţi Un Timer Pentru A Actualiza În Fiecare Secundă
    Octavian Macovetchi
    Încă nu există evaluări
  • ZOOTEHNIA
    ZOOTEHNIA
    Document1 pagină
    ZOOTEHNIA
    Nickolae Enachi
    Încă nu există evaluări
  • PSM Laborator Nr2 - 3
    PSM Laborator Nr2 - 3
    Document13 pagini
    PSM Laborator Nr2 - 3
    Nickolae Enachi
    Încă nu există evaluări
  • PSM Laborator Nr1
    PSM Laborator Nr1
    Document2 pagini
    PSM Laborator Nr1
    Nickolae Enachi
    Încă nu există evaluări
  • PSM Laborator Nr5
    PSM Laborator Nr5
    Document2 pagini
    PSM Laborator Nr5
    grupac131
    Încă nu există evaluări
  • Raport - Sotr.c 151.LAB3
    Raport - Sotr.c 151.LAB3
    Document8 pagini
    Raport - Sotr.c 151.LAB3
    Nickolae Enachi
    Încă nu există evaluări
  • Sericultura
    Sericultura
    Document2 pagini
    Sericultura
    Nickolae Enachi
    Încă nu există evaluări
  • PSM Laborator Nr2 - 3
    PSM Laborator Nr2 - 3
    Document2 pagini
    PSM Laborator Nr2 - 3
    Mishanea Popereshniuk
    Încă nu există evaluări
  • Enachi Nicolae Lab1 - PMMA
    Enachi Nicolae Lab1 - PMMA
    Document3 pagini
    Enachi Nicolae Lab1 - PMMA
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 6
    Raport C++ Lab 6
    Document4 pagini
    Raport C++ Lab 6
    Nickolae Enachi
    Încă nu există evaluări
  • Johannes Kepler
    Johannes Kepler
    Document1 pagină
    Johannes Kepler
    Nutza Zadic
    Încă nu există evaluări
  • Sarcina Lab2
    Sarcina Lab2
    Document10 pagini
    Sarcina Lab2
    Nickolae Enachi
    Încă nu există evaluări
  • Mitologia Chineză
    Mitologia Chineză
    Document3 pagini
    Mitologia Chineză
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 3
    Raport C++ Lab 3
    Document4 pagini
    Raport C++ Lab 3
    Nickolae Enachi
    Încă nu există evaluări
  • ASDN Lab1
    ASDN Lab1
    Document7 pagini
    ASDN Lab1
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 4
    Raport C++ Lab 4
    Document8 pagini
    Raport C++ Lab 4
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 1
    Raport C++ Lab 1
    Document5 pagini
    Raport C++ Lab 1
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 2
    Raport C++ Lab 2
    Document5 pagini
    Raport C++ Lab 2
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 1
    Raport C++ Lab 1
    Document5 pagini
    Raport C++ Lab 1
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 2
    Raport C++ Lab 2
    Document5 pagini
    Raport C++ Lab 2
    Nickolae Enachi
    Încă nu există evaluări
  • Enachi - Nicolae.c 151.Lab1.Ps
    Enachi - Nicolae.c 151.Lab1.Ps
    Document8 pagini
    Enachi - Nicolae.c 151.Lab1.Ps
    Nickolae Enachi
    Încă nu există evaluări
  • N Cosanus
    N Cosanus
    Document2 pagini
    N Cosanus
    Nickolae Enachi
    Încă nu există evaluări
  • Raport Electronica Lab1
    Raport Electronica Lab1
    Document4 pagini
    Raport Electronica Lab1
    Nickolae Enachi
    Încă nu există evaluări
  • Istoria UTM
    Istoria UTM
    Document8 pagini
    Istoria UTM
    Nickolae Enachi
    Încă nu există evaluări
  • Electr Lab7
    Electr Lab7
    Document4 pagini
    Electr Lab7
    Nickolae Enachi
    Încă nu există evaluări
  • Electr Lab1
    Electr Lab1
    Document5 pagini
    Electr Lab1
    Nickolae Enachi
    Încă nu există evaluări
  • Electr Lab6
    Electr Lab6
    Document3 pagini
    Electr Lab6
    Nickolae Enachi
    Încă nu există evaluări
  • SDA Lab 1
    SDA Lab 1
    Document3 pagini
    SDA Lab 1
    Nickolae Enachi
    Încă nu există evaluări