Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Кооошечка
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 21
#1

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

27.09.2010, 16:39. Просмотров 1894. Ответов 2
Метки нет (Все метки)

Даны действительные числа x1, x2, x3, y1, y2, y3. Принадлежит ли начало координат треугольнику с вершинами (x1, y1), (x2, y2), (x3, y3)?
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
#include <iostream>
int main()
{
    float x1,x2,x3,y1,y2,y3,s1,s2,s3,S;
    std::cout << "x1=";
    std::cin >> x1;
    std::cout << "y1=";
    std::cin >> y1;
    std::cout << "x2=";
    std::cin >> x2;
    std::cout << "y2=";
    std::cin >> y2;
    std::cout << "x3=";
    std::cin >> x3;
    std::cout << "y3=";
    std::cin >> y3;
    s1 =abs(((y2)*abs(x2)+(y3+y2)*abs(x3-x2)-(y3)*abs(x3))/2);
    s2 =abs(((y1)*abs(x1)+(y3)*abs(x3)-(y1+y3)*abs(x3-x1))/2);
    s3 =abs(((y1+y2)*abs(x2-x1)+(y2)*abs(x2)-(y1)*abs(x1))/2);
    S  =abs(((y1+y2)*abs(x2-x1)+(y3+y2)*abs(x3-x2)-(y1+y3)*abs(x3-x1))/2);
    std::cout<<"s1="<<s1<<" s2="<<s2<<" s3="<<s3<<" S="<<S;
    if ((S-s1-s2-s3)<0.00001) std::cout<<"prinadlejit";
    else std::cout<<"ne prinadlejit"<<"\n";
    system("pause");
}
в чём ошибка, какие координаты бы не вводила пишет что точка принадлежит, Посмотрите пожалуйста код, в чём ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2010, 16:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Принадлежит ли начало координат треугольнику с вершинами (C++):

Принадлежит ли начало координат треугольнику с вершинами - C++
Даны действительные числа x1, x2, x3, y1, y2, y3. Определите, принадлежит ли начало координат треугольнику с вершинами (x1, y1), (x2,y2),...

Даны действительные числа x1 , x2 , x3 , y1 , y2 , y3 . Принадлежит ли начало координат треугольнику с вершинами (x1,y1), (x2,y2), (x3, y3)? - C++
Написать код программы. Вот условие Даны действительные числа x1 , x2 , x3 , y1 , y2 , y3 . Принадлежит ли начало координат треугольнику...

Принадлежит ли начало координат треугольнику - C++
Даны действительные числа x1,x2,x3,y1,y2,y3; Принадлежит ли начоло координат треугольнику с вершинами (x1,y1),(x2,y2),(x3,y3); первый...

Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли заданная точка (x,y) указанному треугольнику. - C++
Добрый день! Помогите пожалуйста разобраться с прогой... Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли...

Дана точка A(x; y) на координатной плоскости. Определить, принадлежит ли она треугольнику с вершинами в точках . - C++
Дана точка A(x; y) на координатной плоскости. Определить, принадлежит ли она треугольнику с вершинами в точках .

. Определить, принадлежат ли точки прямой ax+by+c=0 треугольнику с вершинами (x1,y1), (x2,y2), (x3,y3) - C++
. Определить, принадлежат ли точки прямой ax+by+c=0 треугольнику с вершинами (x1,y1), (x2,y2), (x3,y3).

2
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
27.09.2010, 21:41 #2
Кооошечка, не abs, а fabs.
Abs используется для целочисленных значений, и применяя его вы тем самым приводите свое значение к типу int, при этом теряется десятичная часть и остается только целое значение
1
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
27.09.2010, 23:03 #3
Кооошечка, Есть еще такой подход.
Составляем уравнения стороны треугольника в виде Ax+Bx+C=0
Подставляем в него координаты проблемной точки x0, y0(в данном случае x0=0, y0=0)
и точки противолежащей вершины. Ежели точка внутри тр-ка - их знаки одинаковы
C
1
  if ((A*x0+B*y0+C) * (A*x2+B*y2+C) < 0) neprenadlegit
И так для каждой из сторон.

Этот подход легко обобщается
а) Для любого выпуклого многоугольника
б) Для 3-мерных и Н-мерных пространнств

Мяяяу
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2010, 23:03
Привет! Вот еще темы с ответами:

Определить, принадлежит ли точка треугольнику - C++
Треугольник задан координатами вершин. Определить, принадлежит ли точка M(x,y) треугольнику. Добавлено через 2 часа 15 минут очень...

Определить принадлежит ли точка треугольнику - C++
Здравствуйте! Не могли бы вы помочь решить мне задачу? Всем буду очень благодарен В декартовой системе координат на плоскости заданы...

Определить принадлежит ли точка треугольнику - C++
Определить,принадлежит ли точка M(X,Y) треугольнику,образованном осями Ох и Оу и прямой,которая пересекает эти оси в точках Х и Y. Буду...

Определить принадлежит ли точка с координатами (x, y) треугольнику - C++
программа должна определять принадлежит ли точка с координатами (x, y) треугольнику, который задан координатами его вершин.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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