Нужно написать программу ** java Помогите, плжPS: Залогал сайт и не изменилось количество...

0 голосов
24 просмотров

Нужно написать программу на java Помогите, плжPS: Залогал сайт и не изменилось количество баллов, так что всего 5, извиняюсь(Хотела 40)


image
image

Информатика (305 баллов) | 24 просмотров
0

если так будкт удобнее - можете просто подробно написать как и что делать, без кода

Дан 1 ответ
0 голосов

Класс Point:

public class Point {

   private double x, y;


   public Point(double x, double y) {

       this.x = x;

       this.y = y;

   }


   @Override

   public String toString() {

       return String.format("(x,y) is (%.1f,%.1f)", x, y);

   }


   public void addX(double x) {

       this.x += x;

   }


   public void addY(double y) {

       this.y += y;

   }


   public void add(double x, double y) {

       addX(x);

       addY(y);

   }


   public double dstToCenter() {

       return Math.sqrt(x*x + y*y);

   }

}

============================================

Класс Segment


public class Segment {

   private final Point p1, p2;


   public Segment(Point p1, Point p2) {

       this.p1 = p1;

       this.p2 = p2;

   }


   public Segment(double x1, double y1, double x2, double y2) {

       this.p1 = new Point(x1, y1);

       this.p2 = new Point(x2, y2);

   }


   @Override

   public String toString() {

       return String.format("1st %s and 2nd %s", p1.toString(), p2.toString());

   }


   public boolean isOnSegment(Point p) {

       if (p.getX() < Math.min(p1.getX(), p2.getX()) || p.getX() > Math.max(p1.getX(), p2.getX())

           || p.getY() < Math.min(p1.getY(), p2.getY()) || p.getY() > Math.max(p1.getY(), p2.getY())) return false;

       double A = p2.getY() - p1.getY();

       double B = p1.getX() - p2.getX();

       double C = p1.getX() * p2.getY() - p2.getX() * p1.getY();

       return A * p.getX() + B * p.getY() + C == 0;

   }


   public double getLength() {

       return Math.sqrt((p2.getX()-p1.getX())*(p2.getX()-p1.getX()) + (p2.getY()-p1.getY())*(p2.getY()-p1.getY()));

   }


   public double getAngleToX() {

       if (p1.getX() == p2.getX()) return 90;

       double A = Math.atan2(p1.getY() - p2.getY(), p1.getX() - p2.getX()) / Math.PI * 180;

       return A < 0 ? A + 360 : A;

   }

}

(3.7k баллов)
0

спасибо тебе, добрый человек