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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функции. Поиск минимума и максимума. http://www.cyberforum.ru/cpp-beginners/thread59854.html
Составить программу для нахождения суммы минимального и максимального значений среди элементов каждой из линейных таблиц Х и Y
C++ Сортировка массива и суммы. Дан массив a(n) (n=20) Нужно его отсортировать по возрастанию. И потом найти следующие выражения: a(0)+a(n-1) a(1)+a(n-2) a(2)+a(n-3) ... http://www.cyberforum.ru/cpp-beginners/thread59853.html
Ввод элементов массива. C++
В общем задание следующее, вводитятся с клавиатуры от 1 до 50 целых чисел. Из этих чисел нужно посчитать общую сумму нечётных и отрицательных. Нужна конкретная помощь в воде элементов, чтоб если нужно на пример количество элементов 12, то чтоб вводил 12 и потом что прога дальше работала, а не просила вводить остальные до 50=) Я тут накалякал кое-чего, но не так как нужно, да и не работает в...
C++ Хочу выучить С++
скачал книжку но там надо программу GNU C++ в интернете нормального ничего не нашел еще надо бы видео уроки есть Михаила Майорова но это вторая часть а первой нету ... помогите пожалуйста
C++ Исправьте ошибки что найдете в моей программе. http://www.cyberforum.ru/cpp-beginners/thread59809.html
помогите пожалуйста бедному студенту исправьте пожалуйста ошибки что найдете в моей программе программа читает матрицу проверяет или элементы непарных строк равняются нулю а парных единице потом архивирует матрицу записывает в новый массив номер столбца где есть единица а когда конец строки -1 и выводит значение элемента из заархивованой матрицы на паскале программа работает исправте...
C++ Прошу помочь Нужно привести програмку в порядок, с первой частью вроде справился, со второй не могу, ошибка С2784. Первая часть: было: float prois(float a, float b, int n) {float pr=1,k=1,l; while(k<=n) {if k%2==0 l=-k; подробнее

Показать сообщение отдельно
Garik18
0 / 0 / 0
Регистрация: 29.10.2009
Сообщений: 10

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

29.10.2009, 17:35. Просмотров 2360. Ответов 3
Метки (Все метки)

Надеюсь на помощь форумчан:

Задача следующяя: задана коодинатами точек четырёхугольная фигура A(-2,-1) B(-1,1) C(0,0) D(1,0)
С клавиатуры вводятся координаты ещё одной точки.
Нужно определить принадлежит ли точка данной фиуре.

Метод, которым я воспользовался:

Разбиваем нашу фигуру на два треугольника: 1-ABC 2-ACD вычисляем их площади. у нас дана точка с координатами
берём первый теулольник и составляем три треугольника с точкой нашей, это будет выглядеть так 1-ABE, 2-BCE, 3-ACE
из второго треугольника мы тажке получим 3 треугольника: 1-EAC, 2-CDE, 3-EDA

ABE BCE ACE -если сумма площадей этих трёх треугольников равна площади ABC, то точка принадлежит нашей
первоначальной фигуре, если площади не равны, то проверяе второ треугольни:
если сумма EAC CDE EDA равна ACD, то точка принадлежит первоначальной фигуре,
если нет, то точка не принадлежит нашей фигуре
Оказался не очень верным, так как в некоторых случаях точка не лежит в фигуре, но площади совпадают, соответственно результат не верен((( Этот метод хорош только для одного треуголника, а у меня к зажелению не так...

Вот код этой проги:
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
void main ()
{
clrscr();
float ABC,ACD,xa,ya,xb,yb,xc,yc,xd,yd,xe,ye,ABE,BCE,ACE,CDE,EDA;
printf ("Vvedite koordinatu X tochki E\n");
scanf ("%f",&xe);
printf ("Vvedite koordinatu Y tochki E\n");
scanf ("%f",&ye);
 
xa=-2;
ya=-1;
xb=-1;
yb=1;
xc=0;
yc=0;
xd=1;
yd=0;
 
ABC=abs(xb*yc-xc*yb-xa*yc+xc*ya+xa*yb-xb*ya);
ACD=abs(xc*yd-xd*yc-xa*yd+xd*ya+xa*yc-xc*ya);
ABE=abs(xb*ye-xe*yb-xa*ye+xe*ya+xa*yb-xb*ya);
BCE=abs(xc*ye-xe*yc-xb*ye+xe*yb+xb*yc-xc*yb);
ACE=abs(xc*ye-xe*yc-xa*ye+xe*ya+xa*yc-xc*ya);
CDE=abs(xd*ye-xe*yd-xc*ye+xe*yc+xc*yd-xd*yc);
EDA=abs(xd*ya-xa*yd-xe*ya+xa*ye+xe*yd-xd*ye);
 
if ((ABC==ABE+BCE+ACE)||(ACD==ACE+CDE+EDA)) printf("Tockha prinadlejit figure ABCD");
else printf ("Tochka ne prinadlejit figure ABCD");
getch();
}
Мне препод посоветовал использовать следующий метод:
Нужно каким-то образом проверять как лежит точка по отношению каждой прямой, из которых построена наша фигура...
Я совершенно не имею представления как это сделать в математике, а уж тем более превратить в код программы... Поэтому прошу помощи здесь! Кто может помочь в написании кода для этой проги, то помогите пожалуйста, очень жду и надеюсь на помощь...Желательно чтоб использовалось всё самое простое из С...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru