Форум программистов, компьютерный форум CyberForum.ru

Множество точек на плоскости - C++

Восстановить пароль Регистрация
 
Xsenon_rus
8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104
11.12.2012, 01:02     Множество точек на плоскости #1
Даны 2 множества точек на плоскости. Выбрать 3 различные точки первого множества так , что бы треугольник с вершинами в этих точках накрывал все точки второго множества и имел минимальную площадь.

Помогите с решением пожалуйста. Алгоритм тут так просто не придумаешь, поэтому мне сойдёт тупо перебор , но даже это у меня не получается решить. С курсовой вобще запара т.к есть ещё задачи помимо этой...

Добавлено через 1 час 33 минуты
Блин ну помогите вы же тут гуру с++
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
#include <iostream>
#include <cmath>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
//структура "ТОЧКА"
struct point
{
   int x; //координата точки по Х
   int y; //координата точки по У
};
//функция, которая находит площадь
int area(point a, point b, point c)
{
   return abs((a.x - c.x)*(b.y - c.y) + (b.x-c.x)*(c.y-a.y));
}
 
int main()
{
    int i,j,l,o;
    setlocale( LC_ALL,"Russian" ); //Подключаем русский язык
   /////////////////////////////////////////////////////////////////////////////
   point z[5],s[5];//множества точек
   cout << "Введите сначала координаты множества, а затем координаты вершин треугольника:" << endl;
   for (i=0;i<5;i++)
   {
        cin >> z[i].x;
        cin >> z[i].y;
   }
   for (i=0;i<5;i++)
   {
        cin >> s[i].x;
        cin >> s[i].y;
   }
   /////////////////////////////////////////////////////////////////////////////
   for (i=0;i<5;i++)
   {
       for(j=0;j<5;j++)
       {
           for(l=0;l<5;l++)
           {
               for(o=0;o<5;o++)
               {
   if (area(z[i], z[j], z[l]))
   {
   //если площадь первого треугольника (координаты указаны в скобках)
   //равна сумме площадей остальных 3, то...
      if (area(z[i], z[j], z[l]) == area(s[o], z[j], z[l]) + area(z[i], s[o], z[l]) + area(z[i], z[j], s[o]))
            cout << "Точки находится внутри треугольника\n";
      else 
            cout << "Точки находится вне треугольника\n";
   }
   //если площадь нулевая, значит...
   else
      cout << "Треугольник не существует\n";
               }
           }
       }
   }
   /////////////////////////////////////////////////////////////////////////////
   system("pause");
   return 0;
 
}
Что не так хотя бы на этом этапе не проверяет принадлежность точек треугольнику...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 01:02     Множество точек на плоскости
Посмотрите здесь:

C++ задано множество точек на плоскости,не лежащих на одной прямой
C++ задано множество n точек на плоскости своими координатами.
C++ на плоскости задано множество точек. Найти все подмножества точек, лежащих на одной прямой.
C++ На плоскости задано множество точек. Выбрать три различные точки так, чтобы проходящая через них окружность делила это множество на группы
Дано множество точек на плоскости C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.12.2012, 01:38     Множество точек на плоскости #2
1 же ссылка в гугле
Из множества выбрать три различные точки по условию, осталось только перевести в С
Xsenon_rus
8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104
11.12.2012, 01:41  [ТС]     Множество точек на плоскости #3
Да круто только увы я Паскаль не учил. Я его знаю хуже школьника только небольшие куски синтаксиса, а так все равно ничего не понятно...
с 21 строчки полная каша в паскале до неё более менее понял ну собственно что у меня и сделано тока чуть по другому.
Xsenon_rus
8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104
11.12.2012, 22:03  [ТС]     Множество точек на плоскости #4
И всё таки, кто нить может помочь перевести с Паскаля на c++ !?

Добавлено через 8 часов 19 минут
проблема актуальна помогите пожалуйста...
Yandex
Объявления
11.12.2012, 22:03     Множество точек на плоскости
Ответ Создать тему
Опции темы

Текущее время: 21:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru