Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/36: Рейтинг темы: голосов - 36, средняя оценка - 4.69
2 / 2 / 0
Регистрация: 10.04.2011
Сообщений: 185

Геометрия. Принадлежит или не принадлежит?

25.08.2011, 22:50. Показов 6777. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите подобрать алгоритм к задачи: есть точка a с координатой x и y - p(x,y) и задана некоторая плоскость из четырех точек a(x,y), b(x,y), c(x,y), d(x,y). Необходимо узнать лежит ли точка p в в заданной плоскости?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.08.2011, 22:50
Ответы с готовыми решениями:

Составить программу, которая определяет, принадлежит или не принадлежит круг полностью в квадрат
5. Даны площади квадрата и круга. Составить программу, которая определяет, принадлежит или не принадлежит круг полностью в квадрат.

Геометрия (проверить, принадлежит ли третья точка кругу!)
Отрезок прямой задан двумя точками и есть радиусом круга с центром в первой точке, приверить принадлежит ли третья точка кругу!

Написать программу МТ, которая аннулирует любое слово вида x$x, где x принадлежит {a,b}*, а $ не принадлежит {a, b}
1. Написать программу МТ, которая аннулирует любое слово вида x$x, где x принадлежит {a,b}*, а $ не принадлежит {a, b}.

21
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
25.08.2011, 23:15
adamo86, считаем площадь четырёхугольника и сумму площадей четырёх треугольников, каждый из которых составлен из пары соседних точек четырёхугольника и точки p. Если эти величины (площадь и сумма площадей) совпадают - точка лежит внутри четырёхугольника. Иначе - не лежит.
2
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
25.08.2011, 23:25
Гениально)))
0
7 / 7 / 0
Регистрация: 10.08.2011
Сообщений: 9
26.08.2011, 00:25
Цитата Сообщение от silent_1991 Посмотреть сообщение
Если эти величины (площадь и сумма площадей) совпадают - точка лежит внутри четырёхугольника. Иначе - не лежит.
Для выпуклых фигур это будет работать.

Если четырехугольник невыпуклый, точка может лежать внутри четырехугольника, но площадь самого четырехугольника не обязательно будет равна сумме площадей треугольников. Для невыпуклой фигуры правило работает когда ни один из отрезков, соединяющих точку p c вершиной фигуры не пересекает ее границ.

Точка лежит внутри многогранника, если луч, проведенный из этой точки в любом направлении пересекает грани многогранника нечетное число раз.
3
26.08.2011, 00:28

Не по теме:

And192, мне так часто приходилось видеть подобные задачи, и в условие всегда включалась выпуклость многоугольника, что я как-то даже внимание на это не обратил...

0
7 / 7 / 0
Регистрация: 10.08.2011
Сообщений: 9
26.08.2011, 00:33
Можно, например, поступить следующим образом:
1. Через точку p провести прямую, параллельную оси х.
2. Найти все точки в которых прямая пересекает стороны четырехугольника.
3. Отбросить точки, лежащие слева от p
4. Подсчитать количество точек. Если нечетное (1 или 3 в случае четырехугольника) - значит точка лежит внутри. Если четное (0,2,4) - снаружи.
2
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
26.08.2011, 10:05
Помогите подобрать алгоритм к задачи: есть точка a с координатой x и y - p(x,y) и задана некоторая плоскость из четырех точек a(x,y), b(x,y), c(x,y), d(x,y). Необходимо узнать лежит ли точка p в в заданной плоскости?
1) Плоскость - элемент трёхмерного пространства. Почему координаты двумерные?
2) Для задания плоскости достаточно 3 точек.
0
Заблокирован
26.08.2011, 10:13
Цитата Сообщение от murderer Посмотреть сообщение
2) Для задания плоскости достаточно 3 точек.
точно
берем уравнение плоскости ax + by + cz + k = 0, подставляем координаты точки(x, y, z), если равенство справедливо, значит принадлежит
вроде так

Уравнение плоскости по трем точкам
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
26.08.2011, 11:00
Цитата Сообщение от adamo86 Посмотреть сообщение
некоторая плоскость
будем это называть фигурой или частью плоскости. murderer правильно отметил.

Есть такая идея. Разбить фигуру на треугольники и проверить принадлежность точки к треугольникам с помощью алгоритма, который применим для выпуклых многоугольников. Если точка принадлежит какому-нибудь треугольнику, то она принадлежит всей фигуре.

Осталось подумать как разбить фигуру.

Добавлено через 15 минут
Цитата Сообщение от Евгений М. Посмотреть сообщение
Осталось подумать как разбить фигуру.
Вроде так можно. Берем 2 точки из {a,b,c,d}. К примеру, a,b. Проводим прямую через эти точки. Эта прямая будет делить плоскость Oxy на 2 полуплоскости. Если c и d лежат на разных полуплоскостях, то отрезок [a,b] - это тот отрезок, который делит фигуру на треугольники, иначе - не тот.
За корректность не отвечаю.
1
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.08.2011, 15:00
Цитата Сообщение от Евгений М. Посмотреть сообщение
Вроде так можно...
Чтобы определить, лежат ли две точки C и D по обе стороны относительно прямой, проходящей через точки A и B, можно посмотреть знаки векторных произведений
https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{AB}\times \vec{AC} и https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{AB}\times \vec{AD}.
Если знаки разные, то лежат по обе стороны. А уж векторное произведение просто подсчитать, здесь это определитель матрицы 2 на 2.
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
26.08.2011, 17:27
Цитата Сообщение от Thinker Посмотреть сообщение
знаки векторных произведений
О_о знаки? Вы может быть скалярное произведение имели ввиду?
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
26.08.2011, 17:48
Евгений М.
Принадлежность точки многоугольнику устанавливается проще. Как написал And192
Точка лежит внутри многогранника, если луч, проведенный из этой точки в любом направлении пересекает грани многогранника нечетное число раз.
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
26.08.2011, 17:54
Цитата Сообщение от Евгений М. Посмотреть сообщение
знаки?
Наверное, знак координаты z векторного произведения, которое будет или вверх или вниз от плоскости. x1*y2-y2*x1 - как это применительно к двумерному пространству правильно называется?
1
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
26.08.2011, 18:38
x1*y2-y2*x1 - как это применительно к двумерному пространству правильно называется?
x1*y2-y2*x1=0
1
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
26.08.2011, 21:33
Вот блин
Ну тогда x1*y2-x2*y1
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.08.2011, 22:07
Цитата Сообщение от Евгений М. Посмотреть сообщение
О_о знаки? Вы может быть скалярное произведение имели ввиду?
Именно векторное произведение. Вернее длина полученного вектора со знаком. Скалярное тут совсем не нужно. Такой метод применяется при построении выпуклых оболочек, проверке, является ли многоугольник выпуклым и т.д.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
27.08.2011, 09:40
Цитата Сообщение от Somebody Посмотреть сообщение
Наверное, знак координаты z векторного произведения, которое будет или вверх или вниз от плоскости. x1*y2-y2*x1 - как это применительно к двумерному пространству правильно называется?
Косое произведение
1
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.08.2011, 09:50
Цитата Сообщение от Somebody Посмотреть сообщение
Наверное, знак координаты z векторного произведения, которое будет или вверх или вниз от плоскости. x1*y2-y2*x1 - как это применительно к двумерному пространству правильно называется?
В данном случае так и есть, знак компоненты z, спасибо за пояснение. z = x1*y2-x2*y1
0
27.08.2011, 09:52

Не по теме:

Для того чтобы тема стала максимально информативной нужно просто задать тупой вопрос типа

Цитата Сообщение от adamo86 Посмотреть сообщение
задана некоторая плоскость из четырех точек a(x,y), b(x,y), c(x,y), d(x,y).

1
 Аватар для videolord
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152
03.09.2011, 01:17
adamo86, считаем площадь четырёхугольника и сумму площадей четырёх треугольников, каждый из которых составлен из пары соседних точек четырёхугольника и точки p. Если эти величины (площадь и сумма площадей) совпадают - точка лежит внутри четырёхугольника. Иначе - не лежит.
верно! площадь каждого треуголнка и площадь четырехугольника надо считать с помошю косого произведения векторов, так без потери точности посчитаете площадь

В декартовой системе координат на плоскости заданы координаты вершин треугольника и ещё одной точки. Определить, принадлежит ли эта точка треугольнику. задача
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
public class triangleDot {
static long area(long x1,long y1,long x2,long y2,long x3,long y3){
long s=Math.abs((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1));
return s; 
}
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    long x1=sc.nextInt();
    long y1=sc.nextInt();
    long x2=sc.nextInt();
    long y2=sc.nextInt();
    long x3=sc.nextInt();
    long y3=sc.nextInt();
    long x0=sc.nextInt();
    long y0=sc.nextInt();
    long s=area(x1,y1,x2,y2,x0,y0)+area(x2,y2,x3,y3,x0,y0)+area(x1,y1,x0,y0,x3,y3);
    if(area(x1,y1,x2,y2,x3,y3)==s)  
       System.out.println("In");
    else
        System.out.println("Out");
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2011, 01:17
Помогаю со студенческими работами здесь

Выдать сообщение о том, что точка принадлежит какому-либо из графиков конкретно, либо не принадлежит ни одному из график
program n152; var x,y,y1,y2: real; begin writeln('Введите x,y1,y2 через пробел'); readln(x,y1,y2); y1:=exp(3*ln(x))+0.5*x+5.6; ...

Для заданной т. z(x,y) определить, принадлежит ли она стороне многоугольника или лежит внутри или вне его
Треугольник на плоскости задается целочисленными координатами вершин. Для заданной точке z(x,y) определить , принадлежит ли она стороне...

Определить область, которой принадлежит эта точка: номер четверти или имя оси или начало координат
4) Даны координаты точки плоскости (x, y). Определить область, которой принадлежит эта точка: номер четверти или имя оси или начало...

Задача с фигурой [принадлежит или нет]
Для задачи 2 записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной...

Принадлежит ли круг целому кругу или наоборот
Проверить принадлежит ли кругцелому кругуили наоборот. По принципу истина и ложь Добавлено через 22 часа 26 минут Я уже 2 день её...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru