Знакомство с графикой в Java

Содержание

Слайд 2

Почему графика?

Почему графика?

Слайд 3

Создаем приложение с панелью

Создаем приложение с панелью

Слайд 4

Создаем собственную панель package lect2; import java.awt.Graphics; import javax.swing.JPanel; public class

Создаем собственную панель

package lect2;
import java.awt.Graphics; 
import javax.swing.JPanel;
public class MyPanel1 extends JPanel { 
public

void paint(Graphics g) {
super.paint(g);
g.drawRect(10, 20, 30, 40);
g.drawOval(10, 50, 100, 50);
}
}
Слайд 5

Прикручиваем собственную панель private void initialize() { frame = new JFrame();

Прикручиваем собственную панель

private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 571,

467);
frame.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBackground(Color.WHITE);
panel.setBorder(new
BevelBorder(BevelBorder.RAISED,
null, null, null, null));
panel.setBounds(10, 11, 535, 405);
frame.getContentPane().add(panel);
}
Слайд 6

Прикручиваем собственную панель private void initialize() { frame = new JFrame();

Прикручиваем собственную панель

private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 571,

467);
frame.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new MyPanel1();
panel.setBackground(Color.WHITE);
panel.setBorder(new
BevelBorder(BevelBorder.RAISED,
null, null, null, null));
panel.setBounds(10, 11, 535, 405);
frame.getContentPane().add(panel);
}
Слайд 7

Прикручиваем собственную панель Результат:

Прикручиваем собственную панель

Результат:

Слайд 8

Как рисовать? Декартова система координат

Как рисовать?

Декартова система координат

Слайд 9

Как рисовать? Экранная система координат

Как рисовать?

Экранная система координат

Слайд 10

Как рисовать? // В метод paint() передается объект g, реализующий возможности

Как рисовать?

// В метод paint() передается объект g, реализующий возможности
// класса

Graphics.
// Чтобы создать свое изображение, мы используем разные методы
// объекта g.
public void paint(Graphics g) {
// пурпурный цвет делается текущим – все ниже будет
// рисоваться пурпурным цветом
g.setColor(Color.magenta);
// рисуем корпус домика
g.drawRect(150, 350, 250, 175);
// левая линия крыши
g.drawLine(150,350,275,250);
// правая линия крыши
g.drawLine(275,250,400,350);
}
Слайд 11

Как установить цвет? Graphics.setColor(Color color) // Текущий цвет синий – все

Как установить цвет?

Graphics.setColor(Color color)

// Текущий цвет синий – все ниже рисуется

синим
g.setColor(Color.blue);
// линия рисуется синим цветом
g.drawLine(10, 50, 100, 50);
// Текущий цвет желтый – все ниже рисуется желтым
g.setColor(new Color(255, 255, 0));
// линия рисуется желтым цветом
g.drawLine(10, 55, 100, 55);
// линия рисуется желтым цветом
g.drawLine(10, 60, 100, 60);
// линия рисуется желтым цветом
g.drawLine(10, 65, 100, 65);
Слайд 12

Как установить цвет? популярные цвета

Как установить цвет?

популярные цвета

Слайд 13

Графические примитивы Graphics.drawLine(int x1, int y1, int x2, int y2) g.setColor(Color.blue);

Графические примитивы

Graphics.drawLine(int x1, int y1, int x2, int y2)
g.setColor(Color.blue);
g.drawLine(10, 50, 100,

50);
g.setColor(new Color(255, 255, 0));
g.drawLine(10, 55, 100, 55);
g.drawLine(10, 60, 100, 60);
g.drawLine(10, 65, 100, 65);
Слайд 14

Графические примитивы Graphics.drawRect(int x, int y, int width, int height) g.setColor(Color.RED); g.drawRect(10, 50, 100, 50);

Графические примитивы

Graphics.drawRect(int x, int y, int width, int height)
g.setColor(Color.RED);
g.drawRect(10, 50, 100,

50);
Слайд 15

Графические примитивы Graphics.fillRect(int x,int y, int width, int height) g.setColor(Color.RED); g.fillRect(10, 50, 100, 50);

Графические примитивы

Graphics.fillRect(int x,int y, int width, int height)
g.setColor(Color.RED);
g.fillRect(10, 50, 100, 50);

Слайд 16

Графические примитивы Graphics.drawRoundRect(int x, int y, int width, int height, int

Графические примитивы

Graphics.drawRoundRect(int x, int y, int width, int height, int rx,

int ry)
g.drawRoundRect(10, 50, 100, 50, 10, 30);
Слайд 17

Графические примитивы Graphics.drawOval(int x, int y, int width, int height) g.drawOval(10, 50, 100, 50);

Графические примитивы

Graphics.drawOval(int x, int y, int width, int height)
g.drawOval(10, 50, 100,

50);
Слайд 18

Графические примитивы Graphics.drawArc(int x, int y, int width, int height, int

Графические примитивы

Graphics.drawArc(int x, int y, int width, int height, int alpha,

int beta)
g.drawArc(10, 50, 100, 50, 180, 180);
Слайд 19

Графические примитивы Graphics.drawString(String string, int x, int y) g.setFont(new Font("Courier", Font.BOLD

Графические примитивы

Graphics.drawString(String string, int x, int y)
g.setFont(new Font("Courier", Font.BOLD + Font.ITALIC,

16));
g.setColor(Color.RED);
g.drawString("Hello World!", 100, 50);
Слайд 20

Задача 1 Нарисовать в своей панели снежную бабу. С носом-морковкой.

Задача 1

Нарисовать в своей панели снежную бабу. С носом-морковкой.

Слайд 21

Как рисовать статическую картинку?

Как рисовать статическую картинку?

Слайд 22

Задача 2 Рисуем линию от центра панели до левого верхнего угла

Задача 2

Рисуем линию от центра панели до левого верхнего угла

Слайд 23

Задача 3 Рисуем линию от центра панели до правого верхнего угла

Задача 3

Рисуем линию от центра панели до правого верхнего угла

Слайд 24

Задача 4 Рисуем много линий от центра панели – до верхнего

Задача 4

Рисуем много линий от центра панели – до верхнего края

панели - от левого до правого верхнего угла – с шагом 20 (10, 5, 2, 1)
Слайд 25

Задача 4 - Код package lect2; import java.awt.Color; import java.awt.Graphics; import

Задача 4 - Код

package lect2;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class MyPanel1 extends

JPanel {
public void paint(Graphics g) {
super.paint(g);
int x = 0;
while (x < this.getWidth()) {
g.drawLine(this.getWidth() / 2,
this.getHeight() / 2,
x, 0 );
x += 20;
}
}

Слайд 26

Задача 5

Задача 5

Слайд 27

Задача 6

Задача 6

Слайд 28

Задача 7

Задача 7

 

Слайд 29

Задача 8

Задача 8

 

Слайд 30

Задача 8 - код ... public class MyPanel1 extends JPanel {

Задача 8 - код

...
public class MyPanel1 extends JPanel {
public void paint(Graphics

g) {
super.paint(g);
int y = 0;
while (y < this.getHeight()) {
int x = 0;
while (x < this.getWidth()) {
g.drawLine(0, 0, x, y );
x += 1;
}
y+=50;
}
}

Слайд 31

Задача 9 Заполнить треугольниками верхнюю часть панели в строку

Задача 9

Заполнить треугольниками верхнюю часть панели в строку

Слайд 32

Задача 9.1 Нарисовать треугольник – в верхнем левом углу.

Задача 9.1

Нарисовать треугольник – в верхнем левом углу.

Слайд 33

Задача 9.1 – код 1 public class MyPanel1 extends JPanel {

Задача 9.1 – код 1

public class MyPanel1 extends JPanel { 
public void

paint(Graphics g) {
super.paint(g);
g.setColor(Color.red);
g.drawLine(10, 10, 30, 10);
g.drawLine(30, 10, 20, 30);
g.drawLine(20, 30, 10, 10);
}
}
Слайд 34

Задача 9.1 – код 2 public class MyPanel1 extends JPanel {

Задача 9.1 – код 2

public class MyPanel1 extends JPanel { 
public void

paint(Graphics g) {
super.paint(g);
g.setColor(Color.red);
int x = 20;
int y = 20;
g.drawLine(x - 10, y - 10, x + 10, y - 10);
g.drawLine(x + 10, y - 10, x, y + 10);
g.drawLine(x, y + 10, x - 10, y - 10);
}
}
Слайд 35

Задача 9.2 Заполнить треугольниками верхнюю часть панели в строку

Задача 9.2

Заполнить треугольниками верхнюю часть панели в строку

Слайд 36

Задача 9.2 – код public void paint(Graphics g) { super.paint(g); g.setColor(Color.red);

Задача 9.2 – код

public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.red);
int x = 20;
int

y = 20;
while (x <= this.getWidth() - 20) {
g.drawLine(x - 10, y - 10, x + 10, y - 10);
g.drawLine(x + 10, y - 10, x, y + 10);
g.drawLine(x, y + 10, x - 10, y - 10);
x += 30;
}
}
Слайд 37

Задача 9.3 Заполнить треугольниками вот так:

Задача 9.3

Заполнить треугольниками вот так:

Слайд 38

Задача 9.3 - код public void paint(Graphics g) { super.paint(g); g.setColor(Color.red);

Задача 9.3 - код

public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.red);
int y = 20;
while

(y <= this.getHeight() - 20) {
int x = 20;
while (x <= this.getWidth() - 20) {
g.drawLine(x-10, y-0, x+10, y-10);
g.drawLine(x+10, y-10, x, y+10);
g.drawLine(x, y+10, x-10, y-10);
x += 30;
}
y += 30;
}
}
Слайд 39

Задача 9.3+ Заполнить треугольниками вот так:

Задача 9.3+

Заполнить треугольниками вот так:

Слайд 40

Задача 10 Заполнить значками мерседеса верхнюю часть панели в строку

Задача 10

Заполнить значками мерседеса верхнюю часть панели в строку

Слайд 41

Задача 10.1 Нарисуем 1 значок мерседеса – вспоминаем лекцию из 1 семестра:

Задача 10.1

Нарисуем 1 значок мерседеса – вспоминаем лекцию из 1 семестра:

Слайд 42

Задача 10.1 вспоминаем лекцию из 1 семестра:

Задача 10.1

вспоминаем лекцию из 1 семестра:

Слайд 43

Задача 10.1 вспоминаем лекцию из 1 семестра:

Задача 10.1

вспоминаем лекцию из 1 семестра:

Слайд 44

Задача 11 Заполнить весь экран значками мерседеса

Задача 11

Заполнить весь экран значками мерседеса

Слайд 45

Задача 12 Нарисовать многолучевое солнце используя sin, cos и мозг

Задача 12

Нарисовать многолучевое солнце используя sin, cos и мозг

Слайд 46

Задача 13 Нарисовать значки мерседеса в виде окружности

Задача 13

Нарисовать значки мерседеса в виде окружности

Слайд 47

Задача 14 Нарисовать значки мерседеса в виде спирали

Задача 14

Нарисовать значки мерседеса в виде спирали

Слайд 48

Задача 14+ Нарисовать значки мерседеса в виде спирали электроплитки

Задача 14+

Нарисовать значки мерседеса в виде спирали электроплитки

Слайд 49

Домашнее задание ТОЧНО Установить Eclipse и WindowBuilder ТОЧНО Прочитать «Основные управляющие

Домашнее задание

ТОЧНО Установить Eclipse и WindowBuilder
ТОЧНО Прочитать «Основные управляющие конструкции v

5.0.docx» ВСЮ!
Прочитать «Разработка GUI v 5.0.docx» ВСЮ!
*** Cделать задачи 9.3+ и 14+