Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 05.02.2017
Сообщений: 70

Создать классы Point и Line

10.05.2020, 14:33. Показов 3847. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день не могли бы помочь с реализацией данного задания. Создать классы Point и Line. Объявить массив из объектов класса Point. Определить, какие из объектов Point лежат по одну сторону от прямой и какие по разные. Реализовать для вводимых данных. А конкретнее, как реализовать вот это "определить, какие из объектов Point лежат по одну сторону от прямой и какие по разные".
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2020, 14:33
Ответы с готовыми решениями:

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line
1. Создать класс Point (точка). На его основе создать классы ColoredPoint и Line. На основе класса Line создать класс ColoredLine и класс...

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line
Необходимо: Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия). На основе класса Line создать...

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия)
На основе класса Line создать классы ColoredLine и PolyLine (многоугольник). В классах описать следующие элементы: □ конструкторы с...

10
 Аватар для Aviz__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,487
10.05.2020, 14:46
Цитата Сообщение от lack1253 Посмотреть сообщение
какие из объектов Point
очевидно, сравнивая координаты этих объектов, с прямой, которая имеет вид ay + bx + c = 0
0
0 / 0 / 0
Регистрация: 05.02.2017
Сообщений: 70
10.05.2020, 16:08  [ТС]
уравнение аx+by+c, я конечно хотел бы реализацию данного метода, т.е. мы по координатно сравниваем иксы с иксами и игреки с игреками так?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
10.05.2020, 16:34
https://math.stackexchange.com... nt-located
0
0 / 0 / 0
Регистрация: 05.02.2017
Сообщений: 70
10.05.2020, 16:47  [ТС]
xoraxax, а не могли бы вы помочь с реализацией данного метода
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
10.05.2020, 16:49
тебе что мешает это сделать? формула есть, все понятно вроде, бери пиши, не?
0
0 / 0 / 0
Регистрация: 05.02.2017
Сообщений: 70
10.05.2020, 22:37  [ТС]
xoraxax, а как мы задаем прямую через уравнение аx+by+c? тогда что делать с коэффицентами a,b,c?

Добавлено через 24 минуты
xoraxax, у меня есть начало, только надо продолжить
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
 
 
public class pointline {
    public static void main(String[] args) {
        //задаём случайный массив точек размером n  и выводим на экран;
        Scanner in = new Scanner(System.in);
        int n  = in.nextInt();
 
        Point[] points = createRandomArrayPoint(n, 0, 10, 0, 10);
        System.out.println("Массив точек:\n" + Arrays.toString(points) + "\n");
        in.close();
 
 
    }
 
    public static Point[] createRandomArrayPoint(int length, int xMin, int xMax, int yMin, int yMax) {
        Point[] result = length > 0 ? new Point[length] : new Point[0];
        if (length > 0) {
            for (int i = 0; i < length; i++) {
                result[i] = getRandomPoint(xMin, xMax, yMin, yMax);
            }
        }
        return result;
    }
 
 
    public static Point getRandomPoint(int xMin, int xMax, int yMin, int yMax) {
        Random rand = new Random();
        double x = rand.nextDouble() * Math.abs(xMax - xMin) + xMin;
        double y = rand.nextDouble() * Math.abs(yMax - yMin) + yMin;
        return new Point(x, y);
    }
}
 
class Line {
    Point a;
    Point b;
 
 
    public Line(Point a, Point b) {
        this.a = a;
        this.b = b;
    }
    
 
    @Override
    public String toString() {
        return String.format(" a%s, b%s;", a, b);
    }
}
 
class Point {
    private double x;
    private double y;
 
    public double getX() {
        return x;
    }
 
    public double getY() {
        return y;
    }
 
    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }
 
    @Override
    public String toString() {
        return String.format("[%.2f, %.2f]", this.x, this.y);
    }
 
    public double distanceTo(Point point) {
        double result = 0;
        if (point != null) {
            result = Math.sqrt(Math.pow(this.x - point.getX(), 2) + Math.pow(this.y - point.getY(), 2));
        }
        return result;
    }
}
Добавлено через 31 минуту
Heeeelp

Добавлено через 4 часа 32 минуты
вот собственно вроде рабочий код, как можно оптимизировать этот код

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
 
 
public class pointline {
    public static void main(String[] args) {
        //задаём случайный массив точек размером n  и выводим на экран;
        Scanner in = new Scanner(System.in);
        int n  = in.nextInt();
 
        Point[] points = createRandomArrayPoint(n, 0, 10, 0, 10);
        System.out.println("Массив точек:\n" + Arrays.toString(points) + "\n");
        in.close();
        Point x1y1 = getRandomPoint(0, 3, 7, 10);
        Point x2y2 = getRandomPoint(7, 10, 0, 3);
        Line line=createLine(x1y1,x2y2);
        System.out.println("Координаты прямой:\n" + line + "\n");
 
        line.determine(x1y1,x2y2,points);
 
 
    }
 
    public static Point[] createRandomArrayPoint(int length, int xMin, int xMax, int yMin, int yMax) {
        Point[] result = length > 0 ? new Point[length] : new Point[0];
        if (length > 0) {
            for (int i = 0; i < length; i++) {
                result[i] = getRandomPoint(xMin, xMax, yMin, yMax);
            }
        }
        return result;
    }
 
    public static Line  createLine(Point x1y1,Point x2y2){
        return new Line(x1y1,x2y2);
    }
 
 
 
    public static Point getRandomPoint(int xMin, int xMax, int yMin, int yMax) {
        Random rand = new Random();
        double x = rand.nextDouble() * Math.abs(xMax - xMin) + xMin;
        double y = rand.nextDouble() * Math.abs(yMax - yMin) + yMin;
        return new Point(x, y);
    }
}
 
class Line {
    Point a;
    Point b;
 
 
    public Line(Point a, Point b) {
        this.a = a;
        this.b = b;
    }
 
 
    public  double determine (Point x1y1,Point x2y2,Point[] point){
        double d = 0;
            for (int i = 0; i < point.length; i++) {
                d = (point[i].getX()-x1y1.getX())*(x2y2.getY()-x1y1.getY())-(point[i].getY()-x1y1.getY())*(x2y2.getX()-x1y1.getX());
                System.out.print("Точка " + point[i] + ": ");
                if (d>0)  System.out.println("Ниже");
                else System.out.println("Выше");
            }
        return d;
    }
 
 
    @Override
    public String toString() {
        return String.format(" a%s, b%s;", a, b);
    }
}
 
class Point {
    private double x;
    private double y;
 
    public double getX() {
        return x;
    }
 
    public double getY() {
        return y;
    }
 
    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }
 
    @Override
    public String toString() {
        return String.format("[%.2f, %.2f]", this.x, this.y);
    }
 
 
}
0
0 / 0 / 0
Регистрация: 05.02.2017
Сообщений: 70
10.05.2020, 22:42  [ТС]
вот результат
Миниатюры
Создать классы Point и Line  
0
5 / 4 / 1
Регистрация: 12.08.2019
Сообщений: 27
12.05.2020, 10:43
lack1253, Добрый день, насчет оптимизации не знаю, но у тебя методы перегружены сильно аргументами, я бы сделал вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package pointline;
 
import java.util.Scanner;
 
class Point {
    int x,y;
 
    
    public Point() {
        this(0,0);
    }
    
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    
    public Point createdPoint() {
        int x = (int) (1 + Math.random()*47);
        int y = (int) (1 + Math.random()*47);
        Point p = new Point(x, y);
        return p;
        
    }
 
    public int getX() {
        return x;
    }
 
    public int getY() {
        return y;
    }
    
 
    @Override
    public String toString() {
    return "(" + x + ";" + y + ")";
    }
    
}
 
class Line {
    Point a;
    Point b;
    
    public Line() {
        
    }
    public Line(Point a, Point b) {
        this.a = a;
        this.b = b;
    }
    public static Line createdLine(Point x1y1, Point x2y2) {
        return new Line(x1y1,x2y2);
    }
    @Override
    public String toString() {
        return String.format(" a%s, b%s;", a, b);
    }
    
}
 
public class PointLine {
 
    
    public static int determinate(Point x1y1, Point x2y2, Point[] points) {
        int d=0;
        for (int i = 0; i < points.length; i++) {
            int x = points[i].x;
            int y = points[i].y;
            d = (x - x1y1.getX())*(x2y2.getY()-x1y1.getY())-(y-x1y1.getY())*(x2y2.getX()-x1y1.getX());
            System.out.print("Точка: "+(i+1) + "(" + points[i].x + ";" + points[i].y + ")");
            if (d>0)  System.out.println("Ниже");
            else if (d==0) System.out.println("На линии");
            else System.out.println("Выше");
        }
        return d;
    }
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Введите количество точек");
        int n = sc.nextInt();
        Point[] points = new Point[n];
        for (int i = 0; i < points.length; i++) {   
            points[i] = new Point().createdPoint();
           System.out.println("Точка: "+(i+1) + "(" + points[i].x + ";" + points[i].y + ")");
        }
        Point x1y1 = new Point().createdPoint();
        Point x2y2 = new Point().createdPoint();
        Line line = new Line().createdLine(x1y1, x2y2);
        System.out.println("Координаты линии" +  line);
        PointLine pl = new PointLine();
        pl.determinate(x1y1, x2y2, points);
    }   
}
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
12.05.2020, 21:59
lack1253,

https://vimeo.com/417720395
0
0 / 0 / 0
Регистрация: 05.02.2017
Сообщений: 70
12.05.2020, 23:57  [ТС]
что это? типа готовое приложение под мак?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2020, 23:57
Помогаю со студенческими работами здесь

Создать класс Point (точка) На его основе создать классы ColoredPoint и Line (линия)
Помогите пожалуйста, сделать лабу :cry: Лабораторная работа 9. Наследование В программах требуется описать базовый класс (возможно,...

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия)
Привет Помогите пожалуйста с решением задачи на C++. вот задание: &quot;Создать класс Point (точка). На его основе создать классы...

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия)
всем привет! помогите пожалуйста с решением задачи. вот задание: &quot;Создать класс Point (точка). На его основе создать классы...

Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия)
Задания на наследование. Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия). В классах описать...

Создать DLL с классами Point и Line
Создать DLL с классами Point и Line, описывающими точку и линию на плоскости. Построить Windows-проект, предоставляющий пользователю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru