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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kewen
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 14
#1

Найти 3 крайние точки множества и соеденить линиями - C++

13.12.2011, 01:57. Просмотров 409. Ответов 0
Метки нет (Все метки)

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<graphics.h>
#include<fstream.h>
 
#define PIXEL_COUNT 100
 
void init_graph(){
   int gr_mode, gr_driver=DETECT;
   initgraph(&gr_driver,&gr_mode,"");
   int er_code=graphresult();
   if(er_code!=grOk){
      cout << "Graphic error:" << grapherrormsg(er_code);
      exit(1);
   }
}
 
void main()
{
int x0;
int y0;
int x;
int y;
int i;
char* shkala[] = {"-2", "-4", "-6", "-8", "-10", "-12"};
const int otstup = 20;
const int delenieY = 10;
clrscr();
init_graph();
//Nahodim centr
x0 = getmaxx()/2;
y0 = getmaxy()/2;
setbkcolor(BLACK);
int dxy = (getmaxy()-otstup*2)/delenieY;
setcolor(WHITE);
  for(i=1; i<=delenieY/2; i++)
    {
    y = dxy*i;
    x = getmaxx()-otstup;
    line(otstup, y0-y, x, y0-y);
    line(otstup, y0+y, x, y0+y);
    moveto(x0+5, y0-y-10);
    outtext(shkala[i-1]+1);
    moveto(x0+5, y0+y-10);
    outtext(shkala[i-1]);
    }
 int delenieX = (getmaxx()/2-otstup)/dxy;
  for(i=1; i<=delenieX; i++)
    {
    x = dxy*i;
    y = getmaxy()-otstup;
    line(x0+x, otstup, x0+x, y);
    line(x0-x, otstup, x0-x, y);
    moveto(x0+x+5, y0+5);
    outtext(shkala[i-1]+1);
    moveto(x0-x+5, y0+5);
    outtext(shkala[i-1]);
    }
 moveto(x0+5, y0-10);
 outtext("0");
 setlinestyle(SOLID_LINE, 0, THICK_WIDTH);
 setcolor(GREEN);
 line(x0, otstup, x0, getmaxy()-otstup);
 line(otstup, y0, getmaxx()-otstup, y0);
 settextjustify(CENTER_TEXT, CENTER_TEXT);
 setcolor(YELLOW);
 settextstyle(0, HORIZ_DIR, 2);
 moveto(getmaxx()-otstup-15, y0-15);
 outtext("x");
 moveto(x0+15, otstup+15);
 outtext("y");
 setlinestyle(0, 0, 3);
 settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
 
 int point_X[PIXEL_COUNT];
 int point_Y[PIXEL_COUNT];
 int seed;
 int maxx = getmaxx();
 int maxy = getmaxy();
 int x1;
 int y1;
 
   for(int j=0; j<PIXEL_COUNT; j++)
    {
    point_X[x1] = random(maxx);
    point_Y[y1] = random(maxy);
    putpixel(point_X[x1], point_Y[y1], 10);
    }
//Все, рандомом решил, но как найти отдаленные точки и построить по ним треугольник для меня   загадка
 getch();
 closegraph();
}
Условия: Дано множество точек на плоскости, найти три различные точки так, чтобы треугольник с вершинами в этих точках содержал строго внутри себя максимальное количество точек этого множества. Вот для меня это не разрешимая загадка, помогите пожжалуйста!)

Добавлено через 51 минуту
никто незнает как решить такую проблему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2011, 01:57     Найти 3 крайние точки множества и соеденить линиями
Посмотрите здесь:

Выбрать 3 точки множества, составляющих треугольник наибольшего периметра C++
C++ Из заданного на плоскости множества точек выбрать три различные точки
C++ Выбрать четыре различные точки первого множества по правилу
Найти наименьшее расстояние от точки В до любой из точек множества А C++
Из заданного множества точек на плоскости выбрать три разные точки A, B, C C++
Из задоного множества точек на плоскости выбрать две различные точки C++
C++ Определить, являются ли точки заданного множества вершинами параллелограмма
Множества . Найти разность полученного множества с заданным C++
Из множества точек выбрать две точки по определенному условию C++
Найти левый и правый крайние отрицательные элементы в массиве из 20 элементов C++
C++ Найти прямую, котороя проходит не менее чем через четыре точки из заданного множества
C++ Из заданного множества точек на плоскости выбрать две различные точки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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