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

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

Войти
Регистрация
Восстановить пароль
 
Antik
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 20
#1

Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (1,1) (0,2) (-1,0) - C++

26.06.2012, 23:32. Просмотров 501. Ответов 1
Метки нет (Все метки)

ребят нужна помощь

Задачи по программированию.
Задача решается на двух языках.


Задача 2.
Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (1,1) (0,2) (-1,0)

очень нужно к восьми утра!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2012, 23:32     Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (1,1) (0,2) (-1,0)
Посмотрите здесь:

Попадание точки в треугольник C++
Написать функцию булевского типа, переставляющую местами диагонали квадратной матрицы, соседние с главной. C++
Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (2,1) (3,0) (-1,0) C++
Написать функцию булевского типа, определяющую упорядоченность массива целых чисел. C++
Написать функцию булевского типа, определяющую наличие пересечения заданной прямой и заданного отрезка. C++
C++ Написать функцию булевского типа, проверяющую наличие в файле записи с заданным ключём.
C++ Функция, проверяющая попадание точки с заданными координатами в фигуру
Найти треугольник с наибольшей площадью с вершинами в точках заданных координатами (подправить код) C++
C++ Попадание точки с координатами х и у в указанную область
C++ Определить, принадлежит ли треугольник с заданными вершинами одной полуплоскости
Найти треугольник наибольшей площади с вершинами в заданных точках C++
Найти треугольник наибольшей площади с вершинами в данных точках C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
28.06.2012, 17:12     Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (1,1) (0,2) (-1,0) #2
Если точка расположена относительно прямой образованной двумя точками треугольника расположена в той же полуплоскости, где и оставшаяся точка треугольника для всех пар из двух точек треугольника, то точка принадлежит треугольнику.


Теорема ( Ильин, Ким Линейная алгебра и аналитическая геометрия): Точки http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{1}({x}_{1}, {y}_{1}) и http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{2}({x}_{2}, {y}_{2}) при надлежат разным полуплоскостям относительно прямой l: Ax+By+C=0 тогда и только тогда когда http://www.cyberforum.ru/cgi-bin/latex.cgi?(A{x}_{1}+B{y}_{1}+C)(A{x}_{2}+B{y}_{2}+C) < 0

Треугольник (1,1) (0,2) (-1,0)

Выборка двух точек треугольника:
1 случай:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{0}({x}_{0}, {y}_{0})  = (1,1)
http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{1}({x}_{1}, {y}_{1})  = (0,2)

Прямая по двум точкам строится следующим образом:


http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{vmatrix}x-{x}_{0} & y-{y}_{0} \\ {x}_{1}-{x}_{0}  & {y}_{1}-{y}_{0}\end{vmatrix} = (x-{x}_{0})({y}_{1}-{y}_{0}) - ({x}_{1}-{x}_{0})(y-{y}_{0} ) = x{y}_{1} - x{y}_{0} - {x}_{0}{y}_{1} + {x}_{0}{y}_{0} - y{x}_{1}+{x}_{1}{y}_{0}+y{x}_{0} - {x}_{0}{y}_{0} = x({y}_{1} - {y}_{0}) + y({x}_{0}-{x}_{1}) + {x}_{1}{y}_{0} - {x}_{0}{y}_{1} = 0

x(0-1) + y(1-2)+2*1 -1*0 = 0 http://www.cyberforum.ru/cgi-bin/latex.cgi?\Leftrightarrow -x - y + 2 = 0 http://www.cyberforum.ru/cgi-bin/latex.cgi?\Leftrightarrow x + y -2 =0

http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{1}({x}_{1}, {y}_{1}) в данном случае это точка (-1,0)


Предположим задана точка http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{2}({x}_{2}, {y}_{2}) равная -0,2;0,9 которую надо проверить на то принадлежит ли она треугольнику

l: Ax+By+C=0 в данном случае x+y-2 = 0
A = 1 B = 1 C = -2
Проверям условие
http://www.cyberforum.ru/cgi-bin/latex.cgi?(A{x}_{1}+B{y}_{1}+C)(A{x}_{2}+B{y}_{2}+C) < 0

(1*-1 + 1*0-2)(1*(-0,2)+1*0,9 - 2) = (-3)(-1,3) > 0 что означает, что точки находятся в одной плоуплоскости относительно прямой l, а это прямая образованная двумя точками треугольника взятыми по условию
http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{0}({x}_{0}, {y}_{0})  = (1,1)
http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{1}({x}_{1}, {y}_{1})  = (0,2)


2 случай
http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{0}({x}_{0}, {y}_{0})  = (1,1)
http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{1}({x}_{1}, {y}_{1})  = (-1,0)

l: Ax+By+C=0 в данном случае x-2y+1= 0

Проделав операции аналогичные предыдущему случаю, получим что >0 то есть точки находятся в одной полуплоскости.

3 случай

http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{0}({x}_{0}, {y}_{0})  = (0,2)
http://www.cyberforum.ru/cgi-bin/latex.cgi?{M}_{1}({x}_{1}, {y}_{1})  = (-1,0)

l: Ax+By+C=0 в данном случае 2x-y+2= 0

Проделав операции аналогичные предыдущему случаю, получим что >0 то есть точки находятся в одной полуплоскости.

Получили что во всех трех случаях точки находятся в одной полупрлоскости, значит точка -0,2;0,9 принадлежит треугольнику
Yandex
Объявления
28.06.2012, 17:12     Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (1,1) (0,2) (-1,0)
Ответ Создать тему
Опции темы

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