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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.90
Alex66618
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 25
#1

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

08.09.2011, 00:01. Просмотров 4283. Ответов 6
Метки нет (Все метки)

Определить принадлежность точки областям, обозначенным прописными буквами A и B. Строчными буквами обозначены определяемые пользователем параметры рисунка. Координаты точки x и y и другие параметры рисунка вводятся пользователем.
[cut]
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2011, 00:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Принадлежит ли точка фигуре (C++):

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

Определить принадлежит ли точка фигуре - C++
Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости. Спасибо.

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

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

Определить, принадлежит ли данная точка заштрихованной фигуре - C++
Даны координаты точек X и Y, необходимо определить пренадлежит ли данная точка заштрихованной фигуре. :wall:

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

6
Alex66618
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 25
08.09.2011, 00:01  [ТС] #2
Помогите пожалуйста.
0
SalterOk
115 / 112 / 1
Регистрация: 02.06.2011
Сообщений: 280
08.09.2011, 00:16 #3
тут математика нужна(ну или геометрия на худой конец) - спроси в разделе математиков
1
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.09.2011, 02:27 #4
это ромб (вершины симметричные)
принадлежность точки треугольнику можно узнать через площади

1) по квадранту точки определяем две ближайшие вершины ромба
2) вычисляем площадь треугольника, образованного началом координат и этими вершинами
3) соединяя точку с началом координат, получаем два треугольника
с вершинами в начале координат, точке и ближайшей вершине ромба
4) вычисляем площади этих треугольников, складываем их и сравниваем сумму с площадью треугольника из пункта 2
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 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
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
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
0
accept
4822 / 3243 / 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)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2011, 06:56
Привет! Вот еще темы с ответами:

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

Разработать программу, определяющую принадлежит ли точка заданной фигуре - C++
Подскажите пожалуйста, зачем нужен "!" в выражении (x*x+y*y<=1 && !(x>0 && y<0)). Оно правильно только не понимаю для чего тут "!". ...

Редактор "Схема алгоритмов" - принадлежит ли точка сложной фигуре - C++
Как определить, что точка принадлежит сложной фигуре. С простыми: круг, прямоугольник вроде понятно. А как быть с такими, как на картинке....

Дана точка М(x, y). Присвоить z = 1, если точка принадлежит окружности с радиусом R и центром в точке (a, b) и z = 0 в противном случае. - C++
Дана точка М(x, y). Присвоить z = 1, если точка принадлежит окружности с радиусом R и центром в точке (a, b) и z = 0 в противном случае.


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
08.09.2011, 06:56
Ответ Создать тему
Опции темы

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