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

Лежит ли точка в круге и треугольнике - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
bulick
0 / 0 / 0
Регистрация: 04.01.2009
Сообщений: 4
11.02.2009, 01:08     Лежит ли точка в круге и треугольнике #1
Даны круг и треугольник на плоскости.Кординаты вводятся с клавиатуры.Даны кординаты точки. Узнать лежит ли точка в области пересечения 2ух фигур
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2009, 01:08     Лежит ли точка в круге и треугольнике
Посмотрите здесь:

C++ лежит ли точка на вершине ромба?
Точка в треугольнике C++
Точка лежит ли в кольце окружности C++
Лежит ли точка в окружности C++
Определить, лежит ли точка А на прямой C++
C++ Определить, находится ли точка в треугольнике
C++ Определить и напечатать, находится ли точка в треугольнике
C++ Лежит ли точка в заданой области?
Линейная задача о круге в треугольнике C++
Лежит ли точка в многоугольнике C++
C++ Определить лежит ли точка в кольце
C++ Лежит ли точка А на прямой y=a+4?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ostgals
 Аватар для ostgals
873 / 668 / 14
Регистрация: 23.01.2009
Сообщений: 1,565
11.02.2009, 18:41     Лежит ли точка в круге и треугольнике #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
struct Point
{
    int x, y;
}
 
int classify(Point p, Point p1, Point p2)
{
    return (p2.x - p1.x) * (p.y - p1.y) - (p.x - p1.x) * (p2.y - p1.y);   
}
 
int in_triangle(Point p, Point p1, Point p2, Point p3)
{
    // p - testiruemaja tochka
    // p1, p2, p3 - vershiny treugol'nika
    
    int c1 = classify(p, p1, p2);
    int c2 = classify(p, p2, p3);
    int c3 = classify(p, p3, p1);
    
    return ((c1 > 0 && c2 > 0 && c3 > 0) || (c1 < 0 && c2 < 0 && c3 < 0)) ? 1 : 0;
}
 
int in_circle(Point p, Point c, int r)
{
    // p - testiruemaja tochka
    // c - centr okruzhnosti
    // r - radius okruzhnosti
    
    int rx = p.x - c.x;
    int ry = p.y - c.y;
    
    return (rx * rx + ry * ry < r * r) ? 1 : 0;
}
 
int in_circle_and_in_triangle = (in_circle(...) && in_triangle(...));
Код не проверял, если честно. Отлаживайте сами :P
Yandex
Объявления
11.02.2009, 18:41     Лежит ли точка в круге и треугольнике
Ответ Создать тему
Опции темы

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