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

Входит ли точка в заштрихованную область? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нахождение площадей пересечения случайных прямоугольников http://www.cyberforum.ru/cpp-beginners/thread774591.html
Предположим у меня есть некоторое количество прямоугольников (точек x;y которые образуют прямоугольники, а так же точки пересечения прямоугольников) расположенных случайно в декартовой системе координат, они могут пересекаться и образовывать площадью своего сечения случайные четырехугольники, треугольники, либо один прямоугольник может находиться внутри другого - как найти наибольшую площадь...
C++: IDE, инструментарий Не создается проект An error occurred while creating or opening the C++ browsing database file F:/opp/11/11.sdf. IntelliSense and browsing information will not be available for C++ projects. Ensure that Microsoft SQL Server Compact 3.5 is installed and that no other applications are accessing the file. If this problem persists, delete the file and reopen the solution. http://www.cyberforum.ru/cpp-beginners/thread774546.html
Найти элементы массива в интервале (0<xi<1), их порядковые номера C++
Массив А. Найти элементы массива в интервале (0<xi<1), их порядковые номера. Если в этом интервале нет элементов, то вывести сообщению пользователю. Найти сумму элементов у которых порядковые номера больше, чем (0<xi<1) Заранее спасибо!
C++ Вывести вначале элементы с четными номерами, а затем с нечетными (все в порядке возрастания)
Здравствуйте, ув. програмисты.. Раньше меня этот форум выручал, и сейчас надеюсь выручит... Я уже встречал тут это задание... Но это все не то, что мне нужно... Я одубел со времен паскаля, а препод в универе свирепствует... В общем суть: Дан массив А размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания), а затем элементы с нечетными номерами (тоже в порядке...
C++ Виртуальные функции http://www.cyberforum.ru/cpp-beginners/thread774537.html
Пожалуйста, подскажите как быть: class Circles; class Rectangs; class Snake { public: Circles *drr; void start1(); protected:
C++ Assert Помогите пожалуйста написать функцию ассерт в файле... не знаю как((( объяяяясните..вопрос жизни и смерти подробнее

Показать сообщение отдельно
xEmpire
23 / 23 / 9
Регистрация: 07.12.2012
Сообщений: 169
Завершенные тесты: 1
29.01.2013, 21:08  [ТС]     Входит ли точка в заштрихованную область?
bumbaram, Спасибо за подсказку!
Нижний треугольник посчитал за правильный и в итоге решил сделать так (Вдруг кому-то понадобиться:
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
#include <iostream>
#include <windows.h>
using namespace std;
 
void main () {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int x,y;
    cout << "Введите координаты вашей точки: ";
    cin >> x >> y;
    int Ax = -5,Ay=0; //[-5,0];
    int Bx=0,By=3; // [0,3];
    int Cx=0,Cy=-5; //[0,-5];
    int Dx=5,Dy=0; // [5,0]
        // Определяем в какой четверти находиться точка.
    if (x>0 && y >0) { // Точка лежит в 1 четверти
        cout << "Данная точка не входит в заштрихованную область"<< endl;
    }
    if  (x<0 && y>0) {
        //находим косое произведение
        //Если косое произведение  <= 0, тогда наша точка входит в нужную область
         int ABx=Bx-Ax, ABy=By-Ay;       
         /* 
         Находим координаты вектора AM(x,y): 
            x= Mx-Ax;
            y=My-Ay;
         */      
         int Mx=x-Ax;
         int My=y-Ay;
         int result = ABx*My-Mx*ABy;
         if (result <= 0)
         cout << "Данная точка входит в заштрихованную область"<< endl;
         else
         cout << "Данная точка не входит в заштрихованную область"<< endl;      
    }
    if  (x<0 && y<0) {
         int ACx=Cx-Ax, ACy=Cy-Ay;       
         int Mx=x-Ax;
         int My=y-Ay;
         int result = ACx*My-Mx*ACy;
         if (result >= 0)
         cout << "Данная точка входит в заштрихованную область"<< endl;
         else
         cout << "Данная точка не входит в заштрихованную область"<< endl;      
    }   
    if  (x>0 && y<0) {
         int CDx=Dx-Cx, CDy=Dy-Cy;       
         int Mx=x-Cx;
         int My=y-Cy;
         int result = CDx*My-Mx*CDy;
         if (result >= 0)
         cout << "Данная точка входит в заштрихованную область"<< endl;
         else
         cout << "Данная точка не входит в заштрихованную область"<< endl;      
    }
    if (x==0 && y==0 ) { // Точка лежит в начале координат;
         cout << "Данная точка входит в заштрихованную область"<< endl;
    }
}
P.S: Тему можно закрывать.
 
Текущее время: 03:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru