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

Принадлежность точки N-угольнику. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ error C2440:невозможно преобразовать 'int' в 'int []' http://www.cyberforum.ru/cpp-beginners/thread331665.html
Собственно вот сам код, жирным выделена строка в которой Visual C++ 2008 показывает ошибку. Поясните кто может что я делаю не правильно... Заранее спасибо! #include <iostream> using namespace std; int sum(int arr, int size) { int result = 0; for(int i = 0; i < size; i++)
C++ Эмулятор Вебки под Seven Всем привет. Я проект пишу на С++, свой первый, более мене серьезный. Мне нужен эмулятор Веб камеры, но только что бы на Sevene работал... подскажите буду премного благодарен http://www.cyberforum.ru/cpp-beginners/thread331658.html
C++ предлагаю программу людям "альтернативное копирование файлов в проводнике"
Суть: программа копирует файл, который передаётся ей параметром командной строки. То есть: в первую очередь программу следует сделать встроенной в проводник. Делается это так: здесь скачивается программа, которая добавляет в реестр нужные вам проги. Компилим мою прогу g++ ra.cpp Полученный экзешник пихаем в любую папку, полное имя которой НЕ СОДЕРЖИТ ПРОБЕЛОВ. После с помощью скачанной проги...
C++ Языки программирования
Есть код программы #include <iostream> #include <stdlib.h> using namespace std; int main() { size_t size;
C++ Русские буквы консоли http://www.cyberforum.ru/cpp-beginners/thread331644.html
Знаю что таких тембыло очень много, но у меня никак не получается вывести слово "Привет" в консоли. Пробую так setlocale(LC_ALL,"Russian"); так wcout.imbue(locale("rus_rus.866")); и так SetConsoleOutputCP(1251); Но не один не работает. Как же мне вывести русские буквы?
C++ Вывод текста на консоль, закарючки вместо букв Я создал консольное win32 приложение в vs2010. Попробовал cout'ом вывести текст русскими буквами - вылезли разные закарючки. Ну эту проблему я уже видел))). НО!!! Когда попытался такимже способом вывести английский текст - СНОВА вылезли разные закарючки!!! Что делать:wall:?! Помогите!!! Пожзяяяяяяяялуста:cry: P.S. Заранее благодарю!:) подробнее

Показать сообщение отдельно
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
11.07.2011, 03:35     Принадлежность точки N-угольнику.
и вообще, задачку можно расписать на курчач и решить круто а можно за 8 минут решить но хреново

Добавлено через 1 час 19 минут
короче, я что-то написал, потом надоело...
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
94
95
96
97
98
99
100
101
102
#include <iostream>
#include <vector>
 
class Point
{
    double x, y;
 
public:
    Point(): x(0.), y(0.) {   }
    Point(double X, double Y): x(X), y(Y) {   }
    Point(const Point& p): x(p.x), y(p.y) {   }
 
    double X () const {return x;}
    double Y () const {return y;}
 
    bool operator == (const Point& p) const { return p.x == x && p.y == y; }
    void operator = (const Point& p) { x = p.x; y = p.y; }
};
 
class Polyline
{
    std::vector<Point> vertex;
    void swap(Point segment[2])
    {
        if(segment[0].X() > segment[1].X())
        {
            Point p = segment[0];
            segment[0] = segment[1];
            segment[1] = p;
        }
    }
public:
    Polyline() {   }
    void addVertex(const Point& p) { vertex.push_back(p); }
 
    bool isVertex(const Point& p)
    {
        for(std::vector<Point>::const_iterator it = vertex.begin(), end = vertex.end(); it != end; ++it)
            if(*it == p)
                return true;
        return false;
    }
 
 
    bool onPlant(const Point& p)
    {
        /*Идея такая, если в полиноме найдутся два ребра, одно из которых выше точки, а другое ниже - точка наша!*/
        Point segment[2];
        segment[0] = *vertex.begin();
        segment[1] = *(vertex.end() - 1);
        swap(segment);
        bool under = false,
             on = false;
        if(segment[0].X() > p.X() || segment[1].X() < p.X() && segment[1].X() != segment[0].X() )
        {
            under = p.Y() + p.Y() < ( segment[0].X() - p.X() ) * ( segment[1].Y() - segment[0].Y() ) / ( segment[1].X() - segment[0].X() );
            on    = p.Y() + p.Y() > ( segment[0].X() - p.X() ) * ( segment[1].Y() - segment[0].Y() ) / ( segment[1].X() - segment[0].X() );
        }
 
        for(std::vector<Point>::const_iterator it = vertex.begin(), end = vertex.end() - 1; it != end; ++it)
        {
            segment[0] = *it;
            segment[1] = *(it + 1);
            swap(segment);
            if(segment[0].X() > p.X() || segment[1].X() < p.X() && segment[1].X() != segment[0].X() )
            {
                if(!under)
                    under = p.Y() < p.Y() + ( p.X() - segment[0].X() ) * ( segment[1].Y() - segment[0].Y() ) / ( segment[1].X() - segment[0].X() );
                if(!on)
                    on    = p.Y() > p.Y() + ( p.X() - segment[0].X() ) * ( segment[1].Y() - segment[0].Y() ) / ( segment[1].X() - segment[0].X() );
            }
        }
        return under && on;
    }
};
std::istream& operator >> (std::istream& cin, Point p)
{
    double m[2];
    cin >> m[0] >> m[1];
    p = Point(m[0],m[1]);
    return cin;
}
 
int main()
{
    setlocale( LC_ALL, "Russian" );
    Polyline polyline;
    Point p;
    std::cout << "Введите количество вершин: ";
    unsigned size;
    std::cin >> size;
    for(unsigned i = 0; i != size; ++i)
    {
        std::cout << i + 1 << ": ";
        std::cin >> p;
        polyline.addVertex(p);
    }
    std::cout << "Введите координаты проверяемой точки: ";
    std::cin >> p;
    std::cout << polyline.isVertex(p) ? "Это вершина многоугольника.\n" : "";
    std::cout << polyline.onPlant(p) ? "Точка лежит внутри многоугольника" : "Точка лежит вне многоугольника.";
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru