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

Из данных точек перебрать все комбинации по 2 треугольника и проверить, принадлежит ли первый треугольник второму - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Распределение вычислительной мошности http://www.cyberforum.ru/cpp-beginners/thread754286.html
Интересует такой вопрос , на серваках есть такая фишка распределение нагрузки . К примеру PHP на одном серваке , MySQL на другом. А можно сделать такое на С++ ? или на C# , без разницы , чтобы обрабатывал прогу не однин ПК , а два сразу . Такие системы SLI для видео карт . К примеру игра грузиться 1 минуту , а в двойне это выйдет 30сек . P.S Интересует вопрос , для себя .
C++ Рекурсия.Снежинка Надо нарисовать снежинку http://www.cyberforum.ru/cpp-beginners/thread754276.html
C++ Распечатать список учеников , фамилии которых начинаются на букву В, с указанием даты их рождения
Распечатать список учеников , фамилии которых начинаются на букву В, с указанием даты их рождения Надо на dev c++, но я не могу :(
C++ Дано два файла. Получить третий, содержащий поочередно строки исходных двух файлов
Дано два файла. Получить третий, содержащий поочередно строки исходных двух файлов. Надо на dev c++, но я не могу :(
C++ Дан целочисленный массив А задается с экрана либо генерируется в пределах -100 до 100. Найти числа b1 b2 …bn равные суммам элементов строк http://www.cyberforum.ru/cpp-beginners/thread754266.html
Дан целочисленный массив А(m,n) задается с экрана либо генерируется в пределах -100 до 100. Найти числа b1 b2 …bn равные суммам элементов строк. На dev c++ надо сделать, но я не могу :(
C++ Отсортировать по убыванию элементы массива с нечетными номерами методом выбора Отсортировать по убыванию элементы массива с нечетными номерами методом выбора. На dev c++ надо сделать, но я не могу :( подробнее

Показать сообщение отдельно
Jarto
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 80
06.01.2013, 19:40     Из данных точек перебрать все комбинации по 2 треугольника и проверить, принадлежит ли первый треугольник второму
В общем пишу курсовую работу. Уже устал биться с ней... Вот задание: дано N точек, из них нужно перебрать все комбинации по 2 треугольника и проверить, принадлежит ли первый треугольник второму. Помогите... Вот код который я осилил, но не знаю как убрать проверку комбинаций треугольников, которые уже были мной проверены.
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
#include <stdio.h>
#include <math.h>
float square(float m1, float n1, float m2, float n2, float m3, float n3);
int main()
{
    FILE *fout, *fin;
    int N;
    float x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, sf, ss, s, s1, s2, s3, s4, s5, s6, s7, s8, s9, tmp, t = 0.01;
    fin=fopen("Koord.txt","r");
    fout=fopen("Result.txt","w");
 
    fscanf(fin,"%d \n",&N);
 
    float* X = new float [N];                             
 
    float* Y = new float [N];                             
 
    for (int i = 0; i < N; i++)    
        {
            fscanf(fin,"%f %f \n",&X[i],&Y[i]);
        }
 
        
    for (int a = 0; a < N; a++)   
        for (int b = 0; b < N; b++) 
            for (int c = 0; c < N; c++)   
                for (int d = 0; d < N; d++)
                    for (int e = 0; e < N; e++)   
                        for (int f = 0; f < N; f++) 
    {
        x1 = X[a];   x2 = X[b];   x3 = X[c];  
        y1 = Y[a];   y2 = Y[b];   y3 = Y[c];
        x4 = X[d];   x5 = X[e];   x6 = X[f];
        y4 = Y[d];   y5 = Y[e];   y6 = Y[f];  
 
        //if ((x1!=x2)&&(x2!=x3)&&(x1!=x3)&&(x4!=x5)&&(x5!=x6)&&(x4!=x6)&&(y1!=y2)&&(y2!=y3)&&(y1!=y3)&&(y4!=y5)&&(y5!=y6)&&(y4!=y6))
        //if ((a!=b)&&(b!=c)&&(a!=c)&&(d!=e)&&(e!=f)&&(d!=f))
        //if ((y1!=y2!=y3)&&(x1!=x2!=x3)&&(y4!=y5!=y6)&&(x4!=x5!=x6))
 
        
 
        sf = square(x1,y1,x2,y2,x3,y3);
        ss = square(x4,y4,x5,y5,x6,y6);
        s1 = square(x4,y4,x2,y2,x3,y3);
        s2 = square(x1,y1,x4,y4,x3,y3);
        s3 = square(x1,y1,x2,y2,x4,y4);
        s4 = square(x5,y5,x2,y2,x3,y3);
        s5 = square(x1,y1,x5,y5,x3,y3);
        s6 = square(x1,y1,x2,y2,x5,y5);
        s7 = square(x6,y6,x2,y2,x3,y3);
        s8 = square(x1,y1,x6,y6,x3,y3);
        s9 = square(x1,y1,x2,y2,x6,y6);
        if ((sf != 0) && (ss != 0))
            
        {
        if (((sf<0) && (sf<=s1) && (s1<=0) && (sf<=s2) && (s2<=0) ||
            (sf>0) && (sf>=s1) && (s1>=0) && (sf>=s2) && (s2>=0)) &&
            ((sf<0) && (sf<=s4) && (s4<=0) && (sf<=s5) && (s5<=0) ||
            (sf>0) && (sf>=s4) && (s4>=0) && (sf>=s5) && (s5>=0)) &&
            ((sf<0) && (sf<=s7) && (s7<=0) && (sf<=s8) && (s8<=0) ||
            (sf>0) && (sf>=s7) && (s7>=0) && (sf>=s8) && (s8>=0)))
        {
            s = ss - sf;
            fprintf(fout,"1-й треугольник:\nA(%3.1f;%3.1f) \nB(%3.1f;%3.1f) \nC(%3.1f;%3.1f) \n2-й треугольник:\nA1(%3.1f;%3.1f) \nB1(%3.1f;%3.1f) \nC1(%3.1f;%3.1f) \n1-й треугольник полностью принадлежит 2-му\nS2-S1=%3.1f\n\n",x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,s);
        }
        else
        {
            fprintf(fout,"1-й треугольник:\nA(%3.1f;%3.1f) \nB(%3.1f;%3.1f) \nC(%3.1f;%3.1f) \n2-й треугольник:\nA1(%3.1f;%3.1f) \nB1(%3.1f;%3.1f) \nC1(%3.1f;%3.1f) \n1-й треугольник не принадлежит полностью 2-му\n\n",x4,y4,x5,y5,x6,y6,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6);
        }
        }
    }
        
}
    
float square(float m1, float n1, float m2, float n2, float m3, float n3)
{
    float square = 0.5 * abs((m1 - m3) * (n2 - n3) - (m2 - m3) * (n1 - n3));
    return square;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru