OOP / Лаб 13
.docxМинистерство образования и науки Украины
Одесский национальный политехнический университет
Кафедра системного программного обеспечения.
Протокол лабораторной работы № 13
По дисциплине:
Объектно-ориентированное программирование
Вариант 10
Выполнил
студент AC-121
Куценко Дмитрий Сергеевич
Преподаватель Левченко А.Ю
Одесса 2013 (год)
Лабораторная работа № 13 «Графика. Java» (2ч.)
Для каждого варианта начертить на экране оси координат,
необходимые геометрические фигуры, а также вывести текст задания и текст ответа.
Задание
Задано прямоугольные координаты вершин и точки. Определить, лежит точка на диагонали квадрата.
Код программы.
package javalab13;
import java.awt.*;
import java.util.*;
import javax.swing.*;
class MyFrame extends JFrame{
protected int x;
protected int y;
protected int w;
protected int h;
protected int x1;
protected int y1;
protected int x2;
protected int y2;
protected JPanel panel;
protected int i;
public void createFrame()
{
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.setLocation(0,0);
panel.setSize(600, 400);
panel.setVisible(true);
add(panel);
setVisible(true);
}
public void add(){
Scanner in= new Scanner(System.in);
System.out.println("Введите X:");
x=in.nextInt();
System.out.println("Введите Y:");
y=in.nextInt();
System.out.println("Введите W:");
w=in.nextInt();
System.out.println("Введите H:");
h=in.nextInt();
System.out.println("Введите X1:");
x1=in.nextInt();
System.out.println("Введите Y1:");
y1=in.nextInt();
}
public void paint() {
Graphics2D g =(Graphics2D) panel.getGraphics();
g.setColor(Color.GRAY);
for (i=0;i<1000;i=i+20){
g.drawLine(i,1000,i,0);
g.drawLine(1000,i,0,i);
}
g.setColor(Color.BLACK);
g.setStroke(new BasicStroke(2));
g.drawLine(230,400,230,0);//Y
g.drawLine(500,205,0,205);// X
g.setStroke(new BasicStroke(1.5f));
for (i=0;i<500;i=i+18){
g.drawLine(i,201,i,210);
g.drawLine(225,i,235,i);
}
g.setStroke(new BasicStroke(2));
g.drawLine(480,195,500,205);
g.drawLine(480,215,500,205);
g.drawLine(220,20,230,0);
g.drawLine(240,20,230,0);
Font font = new Font("Helvetica",Font.ITALIC, 20);
g.setFont(font);
g.drawString("X", 500,190);
g.drawString("Y", 200,20);
g.setColor(Color.BLACK);
g.drawRect(x+230, 205-y-h, w, h);
g.drawLine(x+230,205-y,x+w+230 ,205-(y+h) );
g.drawLine(x+w+230,205-y,x+230 ,205-(y+h) );
g.setColor(Color.RED);
g.fillOval(x1+226 , -y1+201 , 8, 8);
}
public void check(){
y2=y+h;
x2=x+w;
if((double) (y1-y)/(x1-x)==(double) (y2-y)/(x2-x) ||(double) (y1-y)/(x2-x)==(double)(y2-y)/(x2-x)){
System.out.println("Точка лежит на диагонали");
}
else
System.out.println("Точка не лежит на диагонали");
}
}
public class JavaLab13
{
public static void main(String[] args)
{
MyFrame p = new MyFrame();
p.add();
p.check();
p.createFrame();
while(true)
p.paint();
}
}
Тест1 Тест2
Введите X: 10 Введите Y: 10 Введите W: 100 Введите H: 100 Введите X1: 50 Введите Y1: 50 Точка лежит на диагонали |
Введите X: 10 Введите Y: 10 Введите W: 100 Введите H: 60 Введите X1: 15 Введите Y1: 15 Точка не лежит на диагонали |