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

Принадлежит ли точка фигуре - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.90
Alex66618
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 25
08.09.2011, 00:01     Принадлежит ли точка фигуре #1
Определить принадлежность точки областям, обозначенным прописными буквами A и B. Строчными буквами обозначены определяемые пользователем параметры рисунка. Координаты точки x и y и другие параметры рисунка вводятся пользователем.
[cut]
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2011, 00:01     Принадлежит ли точка фигуре
Посмотрите здесь:

C++ Принадлежит ли точка области.
Дана точка М(x, y). Присвоить z = 1, если точка принадлежит окружности с радиусом R и центром в точке (a, b) и z = 0 в противном случае. C++
C++ Даны отрезки [a, b] и [c, d] и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их
C++ Редактор "Схема алгоритмов" - принадлежит ли точка сложной фигуре
C++ принадлежит ли эта точка данной закрашенной фигуре
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex66618
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 25
08.09.2011, 00:01  [ТС]     Принадлежит ли точка фигуре #2
Помогите пожалуйста.
SalterOk
 Аватар для SalterOk
114 / 111 / 1
Регистрация: 02.06.2011
Сообщений: 280
08.09.2011, 00:16     Принадлежит ли точка фигуре #3
тут математика нужна(ну или геометрия на худой конец) - спроси в разделе математиков
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.09.2011, 02:27     Принадлежит ли точка фигуре #4
это ромб (вершины симметричные)
принадлежность точки треугольнику можно узнать через площади

1) по квадранту точки определяем две ближайшие вершины ромба
2) вычисляем площадь треугольника, образованного началом координат и этими вершинами
3) соединяя точку с началом координат, получаем два треугольника
с вершинами в начале координат, точке и ближайшей вершине ромба
4) вычисляем площади этих треугольников, складываем их и сравниваем сумму с площадью треугольника из пункта 2
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.09.2011, 02:44     Принадлежит ли точка фигуре #5
ромб можно и так задать
http://www.cyberforum.ru/cgi-bin/latex.cgi?\mid x \mid + \mid y \mid = 1
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
08.09.2011, 06:11     Принадлежит ли точка фигуре #6
accept, зачем так сложно? Пусть у нас есть точка http://www.cyberforum.ru/cgi-bin/latex.cgi?M(x, y). Нужно проверить, лежит ли эта точка внутри ромба. Так как ромб симметричен и относительно оси абсцисс, и относительно оси ординат, то можно рассматривать только первую четверть.
Пусть точка http://www.cyberforum.ru/cgi-bin/latex.cgi?M'(x', y') = M(|x|, |y|). Наша задача сводится к тому, лежит ли точка http://www.cyberforum.ru/cgi-bin/latex.cgi?M' одновременно ниже прямой cd (см. рисунок). Выражаем уравнение прямой cd через координаты точек http://www.cyberforum.ru/cgi-bin/latex.cgi?c(x_c, y_c) и http://www.cyberforum.ru/cgi-bin/latex.cgi?d(x_d, y_d):
http://www.cyberforum.ru/cgi-bin/latex.cgi?y(x) = y_c + \frac{(x - x_c) (y_d - y_c)}{x_d - x_c} = y_c - x \frac{y_c}{x_d}
Осталось проверить неравенство:
http://www.cyberforum.ru/cgi-bin/latex.cgi?y' \le y(x') \, \Leftrightarrow \, y' \le y_c - x' \frac{y_c}{x_d}
ромб можно и так задать
http://www.cyberforum.ru/cgi-bin/latex.cgi?|x| + |y| = 1
Да ладно? Это очень частный случай (квадрат со стороной 1). Для нашего же случая уравнение будет иметь вид:
http://www.cyberforum.ru/cgi-bin/latex.cgi?y_c \dot |x| + x_d \dot |y| = x_d y_c
Отсюда вытекает еще одно решение (которое можно преобразовать к предыдущему):
http://www.cyberforum.ru/cgi-bin/latex.cgi?y_c \dot |x| + x_d \dot |y| \le x_d y_c
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2011, 06:56     Принадлежит ли точка фигуре
Еще ссылки по теме:

C++ Определить, принадлежит ли точка с координатами (x,y) заштрихованной фигуре
C++ Разработать программу, определяющую принадлежит ли точка заданной фигуре
Принадлежит ли точка с координатами (x,y) заданной фигуре C++

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.09.2011, 06:56     Принадлежит ли точка фигуре #7
Цитата Сообщение от Nameless One
Так как ромб симметричен и относительно оси абсцисс, и относительно оси ординат, то можно рассматривать только первую четверть.
решение

Цитата Сообщение от Nameless One
http://www.cyberforum.ru/cgi-bin/latex.cgi?y(x) = y_c + \frac{(x - x_c) (y_d - y_c)}{x_d - x_c}
Код
C(0, c) D(d, 0)

|x y 1|
|0 c 1| = 0
|d 0 1|

x * |c 1| - y * |0 1| + 1 * |0 c| = 0
    |0 1|       |d 1|       |d 0|
    
c * x + d * y - c * d = 0
Добавлено через 7 минут
Цитата Сообщение от Nameless One
http://www.cyberforum.ru/cgi-bin/latex.cgi?y(x) = y_c + \frac{(x - x_c) (y_d - y_c)}{x_d - x_c} = y_c - x \frac{y_c}{x_d}
Код
c * x + d * y - c * d = 0

d * y = c * d - c * x | : d

y = c - x * (c / d)
Yandex
Объявления
08.09.2011, 06:56     Принадлежит ли точка фигуре
Ответ Создать тему
Опции темы

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