|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.01.2013, 20:19 | #1 |
Регистрация: 27.10.2010
Сообщений: 3
|
Построить множество всех различных выпуклых четырехугольников с вершинами в заданном множестве точек на плоскости
Построить множество всех различных выпуклых четырехугольников с вершинами в заданном множестве точек на плоскости.
Язык: Turbo Pascal Для начала хочу узнать,как организовать перебор всех точек четверками без повторений? |
07.01.2013, 01:55 | #2 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Э-э-э, вроде так
для 1000 точек Код:
|
08.01.2013, 02:56 | #3 | |
Регистрация: 27.10.2010
Сообщений: 3
|
Цитата:
Собственно вот сам код,оставлю его здесь. Код:
|
|
08.01.2013, 02:56 | #4 |
Регистрация: 27.10.2010
Сообщений: 3
|
Код:
|
21.05.2014, 23:18 | #5 |
Регистрация: 20.03.2014
Сообщений: 6
|
Столкнулся с той же задачей что и автор, сперва обрадовался наличию решения, но понять его не получается. Опишите пожалуйста алгоритм работы программы на словах(хотя бы для функций)
|
22.05.2014, 07:33 | #6 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Цитата:
|
|
24.05.2014, 07:04 | #7 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Э-э-э, вроде так
1. перебрать все 4-угольники 2. выбрать выпуклые |
24.05.2014, 12:21 | #8 |
Регистрация: 20.03.2014
Сообщений: 6
|
|
25.05.2014, 17:52 | #9 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Да кто ее там разберет-то. Эт надо ударяться в математику. Оно тебе надо? Работает и ладно (кстати, я лично не проверял работает или нет). А если хочешь разобраться, то надо разобраться, и разобраться самому. Напиши сам с нуля и все сразу поймешь.
|
10.03.2015, 20:49 | #10 |
Регистрация: 10.03.2015
Сообщений: 4
|
Есть вариант функции(точнее 2 функции), проверяющей любые 4 произвольные точки на выпуклость четырехугольника, построенного на этих точках:
function F(x3,y3,x4,y4,x1,y1,x2,y2:integer) : boolean; Var k1,k2,b1,b2 : real; begin if x3=x4 then begin if(((x1<x3)and(x2<x3))or((x1>x3)and (x2>x3)))then f:=false else f:=true; end else begin k1:=(y3-y4)/(x3-x4); b1:=(x3*y4-x4*y3)/(x3-x4); if(((y1<k1*x1+b1)and(y2<k1*x2+b1))o r((y1>k1*x1+b1)and(y2>k1*x2+b1))) then f:=false else f:=true; end; end; {-------------------------------------------------} function Fp(x1,y1,x2,y2,x3,y3,x4,y4:integer) : boolean; //Главная функция begin if (F(x1,y1,x2,y2,x3,y3,x4,y4)=true)an d(F(x3,y3,x4,y4,x1,y1,x2,y2)=false) then fp:=false else if (f(x1,y1,x3,y3,x2,y2,x4,y4)=true)an d(f(x2,y2,x4,y4,x1,y1,x3,y3)=false) then fp:=false else if (f(x1,y1,x4,y4,x3,y3,x2,y2)=true)an d(f(x3,y3,x2,y2,x1,y1,x4,y4)=false) then fp:=false else fp:=true; end; {-------------------------------------------------} |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Множество точек на плоскости | Xsenon_rus | Общие вопросы C/C++ | 0 | 23.11.2012 23:41 |
Координаты 3-х точек на плоскости.Если они могут быть вершинами равнобедренного остроугольного треугольника, вычислить.. (Паскаль) | Konvulsia | Помощь студентам | 0 | 29.09.2012 13:12 |
множество точек на плоскости | sergei15 | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 04.06.2012 20:11 |
Подсчитать количество равносторонних треугольников с вершинами в заданном множестве точек на плоскости (Delphi) | dea_celeste | Помощь студентам | 4 | 17.05.2012 15:33 |