Sunteți pe pagina 1din 5

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei


Catedra: IA

RAPORT
Lucrare de laborator Nr.1
la Grafica pe Calculator

A efectuat:

st. gr. M.I.-121


pac Iulian

A verificat:

lect. sup.
Constantin Plotnic

Chiinu 2014

Lucrarede laborator Nr.1


Scopul lucrarii: Obinerea cunotinelor practice n sinteza figurilor i suprafetelor n baza
bibliotecii grafice a oricrui limbaj de programare (Pascal, C++ sau Java)
Varianta 7
Sarcina lucrrii:
1. De a sinteza figuri grafice - linii; poligoane; curbe; suprafee: poligonale, circulare,
eleptice, sectoare de cerc i de elipse, mrginite de contur. Figurile sintezate s fie
descrise
2. De a salva i restaura imagini n/din fisiere
3. De a prezenta imagini n diferite pori de vizualizare
Mersul lucrrii:
Consideraii teoretice:
Pentru afiarea figurilor grafice n limbajul Java este necesar mai nti s importm
biblioteca grafic AWT care ofer programelor posibiliti de lucru cu grafice, text, imagini,
primitive geometrice cum ar fi curbele, dreptunghiuri elipse ca i un mecanism de redare a
oricrei forme geometrice.
Funciile de desenare a liniilor i suprafeelor snt:
drawLine(x1,y1,x2,y2) functia afiseaza o linie intre punctele de coordonate (x1,y1) si
(x2,y2), specificate ca parametri.
drawRect(x1,y1,x2,y2) funcia afieaz un dreptunghi specificat prin dou vrfuri diametral
opuse: stnga sus si dreapta jos.
n biblioteca grafic exist funcii pentru desenarea urmtoarelor curbe conice: cerc, arc de
cerc, elips i arc de elips
drawOval(x,y,width ,height) funcia afieaz o elips avnd centrul de coordonate (x,y) i
limea i nlimea,pentru a desen un cerc laimea i nlimea le vom specifica aceleai
valori.
drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) funcia afieaz un
arc de cerc, ntre unghiul iniial i unghiul final snt specificate ca parametri. Raza cercului i
coordonatele centrului x i y snt de asemenea parametri ai funciei. Unghiurile iniial i final
se exprim n grade, cuprinse ntre 0 i 360 grade.
Codul programului:
package Lab1 ;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.*;
class PlansaDesenare extends Canvas
{
/**
*
*/
private static final long serialVersionUID = 1L;

@Override
public void paint(Graphics g)
{
g = ((Graphics2D)g);
//linie
g.setColor(Color.green);
g.drawLine(40,40,230,160);
//dreptunghi
g.setColor(Color.gray);
g.drawRect(350, 50, 200, 100);
//paralelepiped
g.setColor(Color.blue);
Polygon par = new Polygon();
par.addPoint(660,50);
par.addPoint(860,50);
par.addPoint(830,150);
par.addPoint(630,150);
g.drawPolygon(par);
//elipsa
g.setColor(Color.yellow);
g.drawOval(40, 280, 200, 100);
//sector de arc
g.setColor(Color.pink);
g.drawArc(350, 280, 200, 100, 180, 180);
//triungi
g.setColor(Color.cyan);
Polygon tr = new Polygon();
tr.addPoint(650,280);
tr.addPoint(650,380);
tr.addPoint(850,380);
g.drawPolygon(tr);
//poligon cu 11 laturi
g.setColor(Color.red);
Polygon pol = new Polygon();
pol.addPoint(110,500);
pol.addPoint(180,500);
pol.addPoint(230,510);
pol.addPoint(250,530);
pol.addPoint(230,550);
pol.addPoint(180,560);
pol.addPoint(110,560);
pol.addPoint(60,550);
pol.addPoint(40,530);
pol.addPoint(40,510);
pol.addPoint(60,510);
g.drawPolygon(pol);
//cerc
g.setColor(Color.green);
g.drawOval(400, 480, 100, 100);
//semicerc
g.setColor(Color.black);
g.drawArc(680, 480, 100, 100, 0, 180);
//sectoarele
g.setColor(Color.black);

g.drawLine(300,1000,300,0);
g.drawLine(600,1000,600,0);
g.drawLine(1000,220,0,220);
g.drawLine(1000,440,0,440);

public void saveImage() {


BufferedImage img = new BufferedImage(this.getWidth(), this.getHeight(),
BufferedImage.TRANSLUCENT);
this.paint(img.getGraphics());
try {
ImageIO.write(img, "png", new File("D://Screen.png"));
System.out.println("panel saved as image");

} catch (Exception e) {
System.out.println("panel not saved" + e.getMessage());
}

}
public class laborator1
{
public static void main(String args[])
{
JFrame f = new JFrame("Laborator 1 G.C.");
f.setSize(900,680);
f.setLocation(200, 25);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setLayout(new BorderLayout());
PlansaDesenare obj = new PlansaDesenare();
f.add(obj, BorderLayout.CENTER);
f.setVisible(true);
f.setResizable (false);
obj.saveImage();
}
}

Rezultatele obinute:

Concluzie: Efectund lucrarea dat am fcut cunotin cu bazele graficii n limbajul Java i
cu funciile de desenare a figurilor primitive i cu modurile de colorare alor i afiarea unor
seciuni a acestora.

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