Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
sandydark
1 / 1 / 3
Регистрация: 04.12.2016
Сообщений: 60
1

На плоскости заданы n отрезков координатами концевых точек

15.02.2017, 10:17. Просмотров 1016. Ответов 2
Метки нет (Все метки)

На плоскости заданы n отрезков координатами концевых точек. Концы отрезков задаются двумя парами координат (x1[i],y1[i]), (x2[i],y2[i]), 1<=i<=n (концы принадлежат отрезку).

Help please.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2017, 10:17
Ответы с готовыми решениями:

На плоскости заданы координатами n точек. Создать матрицу, элементами которой являются расстояние между каждой парой
На плоскости заданы своими координатами n точек. Создать матрицу, элементами которой являются...

Отрезок задан координатами своих концевых точек. Требуется вычислить длину этого отрезка
проваливает 3 тест Отрезок задан координатами своих концевых точек. Требуется вычислить длину...

Дано множество точек на плоскости, заданных полярными координатами. Получить декартовы координаты этих точек
Получилось сделать для координаты одной точки, а как сделать для множества точек, через цикл или...

На координатной плоскости заданы два треугольника координатами своих вершин
2. На координатной плоскости заданы два треугольника координатами своих вершин. Определить,...

На плоскости заданы окружность и множество точек
На плоскости заданы окружность и множество точек. Сколько прямых коснется окружности и пересечет ее...

2
Байт
Эксперт C
20473 / 12998 / 2733
Регистрация: 24.12.2010
Сообщений: 27,200
15.02.2017, 10:32 2
В чем вопрос-то?
0
sandydark
1 / 1 / 3
Регистрация: 04.12.2016
Сообщений: 60
15.02.2017, 10:52  [ТС] 3
Лучший ответ Сообщение было отмечено sandydark как решение

Решение

Байт, как это организовать.// или верно ли работает мой код.


Пропустил мимо глаз когда писал условие. Вот суть задачи : Необходимо найти прямую, имеющую общие точки с максимальным числом отрезков, и напечатать в порядке возрастания номера тех отрезков, которые эта прямая пересекает.

вот что у меня имеется,но я не уверен что оно работает верно. часть с "На плоскости заданы n отрезков координатами концевых точек" я пропустил.
C++
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
const int n=20;
struct line
{
int x1,y1,x2,y2;
};
 
int main()
{
int i,j;
int num_intersect[n][n];//nomer otrezka;peresechen li c drygim otrezkom. 1-da,0-net
line obj[n];
int count=0;//chislo peresecheniy
int num=0;//nomer otrezka y kotorogo bol'we vcego peresecheniy
 
for(i=0;i<n;i++)//slychainim sposobom dlya kajdogo otrezka zadaem coord. i vivodim ih
{
obj[i].x1=rand()%100;
obj[i].y1=rand()%100;
obj[i].x2=rand()%100;
obj[i].y2=rand()%100;
cout<<"("<<obj[i].x1<<","<<obj[i].y1<<");("<<obj[i].x2<<","<<obj[i].y2<<")\n";
}
 
for(i=0;i<n;i++)//po vsem otrezkam
{
int cnt=0;
for(j=0;j<n;j++)//kajdiy otrezok sravnivaem so vsemi drygimi i viyasnyaem peresekautsya oni ili net 
{
if(i==j)
{
num_intersect[i][j]=0;
continue;
}
int v1=(obj[j].x2-obj[i].x1)*(obj[i].y1-obj[j].y1)-(obj[j].y2-obj[j].y1)*(obj[i].x1-obj[j].x1);
int v2=(obj[j].x2-obj[i].x1)*(obj[i].y2-obj[j].y1)-(obj[j].y2-obj[j].y1)*(obj[i].x2-obj[j].x1);
int v3=(obj[i].x2-obj[i].x1)*(obj[j].y1-obj[i].y1)-(obj[i].y2-obj[i].y1)*(obj[j].x1-obj[i].x1);
int v4=(obj[i].x2-obj[i].x1)*(obj[j].y2-obj[i].y1)-(obj[i].y2-obj[i].y1)*(obj[j].x2-obj[i].x1);
if((v1*v2<0) && (v3*v4<0))
{
num_intersect[i][j]=1;
cnt++;
}
else
num_intersect[i][j]=0;
}
 
if(count<cnt)//esli mi naidem otrezok y kotorogo bol'we vsego peresecheniy zapominaem ego nomer i chislo peresecheniy 
{
num=i;
count=cnt;
}
}
cout<<endl<<endl;
cout<<"line: "<<num<<" count: "<<count<<"| ";//vivodim nomer otrezka y kotorogo bol'we vcego peresecheniy, kol-vo pereseheniy coord
cout<<"("<<obj[num].x1<<","<<obj[num].y1<<");("<<obj[num].x2<<","<<obj[num].y2<<")\n\n";
for(i=0;i<n;i++)//pechataem nomer i coord. otrezkov s kotorimi peresekaetsya neidenniy nami
{
if(num_intersect[num][i]==1)
{
cout<<"num line: "<<i<<"| ";
cout<<"("<<obj[i].x1<<","<<obj[i].y1<<");("<<obj[i].x2<<","<<obj[i].y2<<")\n";
}
}
 getch();
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2017, 10:52

В массивах вещественных чисел X и Y записаны координаты точек на плоскости. Найти длины отрезков
Помогите написать программу. В массивах вещественных чисел X и Y записаны координаты точек на...

На плоскости задано n точек своими координатами
На плоскости задано n точек своими координатами.Найти точку наиболее отдаленную от начала...

Заданы два множества точек на плоскости. Построить пересечения и разность множеств
начало примерно такое ,на мой взгляд должно быть, а вот со второй частью програмки возникает...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru