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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
JM007
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 57
05.05.2010, 09:53     Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли заданная точка (x,y) указанному треугольнику. #1
Добрый день!
Помогите пожалуйста разобраться с прогой...

Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли заданная точка (x,y) указанному треугольнику.

Там прога считает не правильно пишет что точка непринадлежит треугольнику при лубых условиях.
В чем ошибка ?

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
#include <stdio.h>
#include <stdlib.h>
#include "math.h"
#include <iostream.h>
#include <conio.h>
void main()
{
float x,y,x1,x2,x3,y1,y2,y3;
float s,s1,s2,s3;
 
printf("\nVvedite koordinaty treugolnika: ");
printf("x1= "); scanf("%f", &x1); 
printf("y1= "); scanf("%f", &y1);
printf("x2= "); scanf("%f", &x2);
printf("y2= "); scanf("%f", &y2);
printf("x3= "); scanf("%f", &x3);
printf("y3= "); scanf("%f", &y3);
printf("\nVVedite koordinaty tochki: ");
printf("x= "); scanf("%f", &x);
printf("y= "); scanf("%f", &y);
 
if (x1==x2==x3 || y1==y2==y3)
{ 
printf("\nNevernye koordinaty treugolnika!");
}
{  
s = 1/2 * abs((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1));
s1 = 1/2 * abs((x2 - x1) * (y - y1) - (x - x1) * (y2 - y1));
s2 = 1/2 * abs((x - x1) * (y3 - y1) - (x3 - x1) * (y - y1));
s3 = 1/2 * abs((x2 - x) * (y3 - y) - (x3 - x) * (y2 - y));
 
if ((s = s1 + s2 + s3)!= 0)
     printf("\nTochka v treugolnike! ");
else 
     printf("\nVne treugolnika!");
     }
getch ();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2010, 09:53     Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли заданная точка (x,y) указанному треугольнику.
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Adler
 Аватар для Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
05.05.2010, 10:47     Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли заданная точка (x,y) указанному треугольнику. #2
C++
1
if ((s = s1 + s2 + s3)!= 0)
может поменять на это:
C++
1
if(s == s1 + s2 + s3)
?
Yandex
Объявления
05.05.2010, 10:47     Треугольник задан вершинами (x1,y1), (x2,y2), (x3,y3). Принадлежит ли заданная точка (x,y) указанному треугольнику.
Ответ Создать тему
Опции темы

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