|
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 4
|
|
Множество точек определяет ломаную. Имеет ли она самопересечения?04.02.2009, 18:06. Показов 11119. Ответов 8
Метки нет (Все метки)
Помогите, пожалуйста, кто-нибудь!
В задачах предполагается, что во входном файле записана последовательность пар чисел, которые можно рассматривать как координаты множества точек на плоскости. Для представления геометрических объектов нужно использовать структуры. Во всех задачах в начале входного файла стоит число = количеству ПАР чисел, идущих после этого числа, т.е. размерность вектора структур { double x,y; }, в который эти пары можно поместить. 1. Множество точек определяет ломаную. Имеет ли она самопересечения? Ответ: 1 - да, 0 - нет. 2. Множество точек определяет многоугольник. Для данной точки определить, где она расположена относительно этого многоугольника: внутри, снаружи, на границе. Ответ: 1 - внутри, -1 - снаружи, 0 - на границе. Круг задается 3 последними числами: координаты центра радиус
0
|
|
| 04.02.2009, 18:06 | |
|
Ответы с готовыми решениями:
8
Множество точек образуют ломаную; определить, имеет ли она самопересечения? Определить, имеет ли ломаная линия самопересечения Подсчитать число точек самопересечения ломаной |
|
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
|
||
| 05.02.2009, 18:52 | ||
|
В общем, не хочу за тебя просто так писать программу. Скажу только алгоритм выполнения. Думаю, дальше ты справишься.
Задача 1. Эта задача сводится к тому, что надо определить, пересекаются ли два заданных отрезка. Обозначим координаты концов первого отрезка за (x1a,y1a) и (x1b,y1b). Координаты концов второго - (x2a,y2a) и (x2b,y2b). Вводим величины k1 = (y1b-y1a)/(x1b-x1a), k2 = (y2b-y2a)/(x2b-x2a). Далее находим x = (y2a-y1a+k1*x1a-k2*x2a)/(k1-k2) y = k1*(x-x1a)+y1a Далее находим значения d1a = sqrt((x1a-x)^2+(y1a-y)^2) d1b = sqrt((x1b-x)^2+(y1b-y)^2) d1 = sqrt((x1b-x1a)^2+(y1b-y1a)^2) d2a = sqrt((x2a-x)^2+(y2a-y)^2) d2b = sqrt((x2b-x)^2+(y2b-y)^2) d2 = sqrt((x2b-x2a)^2+(y2b-y2a)^2) Отрезки пересекаются, если имеет место равенства: d1a+d1b = d1 d2a+d2b = d2 (эти два равенства должны выполняться одновременно). Перебрав все возможные пары звеньев ломанной, можно определить, пересекает ли эта ломанная саму себя. Добавлено через 20 минут 18 секунд Задача 2. Первое, что нужно сделать - это найти площадь всего многоугольника целиком. Для этого разбиваешь его на несколько треугольников, проводя все возможные диагонали из одной вершины. Площадь всего многоугольника находится как сумма площадей всех полученных треугольников. Площадь треугольника, координаты вершин которого есть (x1,y1), (x2,y2) и (x3,y3) можно найти как St = abs((x1-x3)(y2-y3) - (y1-y3)(x2-x3))/2. Обозначим за Sm площадь многоугольника. Далее соединяем точку, положение которой относительно многоугольника нужно найти также со всеми вершинами многоугольника. Получим несколько треугольников. Находим суммарную площадь всех этих треугольников. Обозначим ее буквой S. Если S>Sm, то точка лежит вне многоугольника. Если S=Sm, то точка лежит на границе многоугольника. Если S<Sm, то точка лежит внутри многоугольника. Жаль, но все сказанное справедливо только для выпуклого многоугольника. Для невыпуклого вопрос пока остается открытым. Добавлено через 22 часа 59 минут 36 секунд
0
|
||
|
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
|
||
| 09.02.2009, 18:49 | ||
1. Выбрать 1-ю вершину мгногоугольника (номер, естественно, условный). 2. Провести от нее все возможные диагонали. Т.е. разбить многоугольник на треугольники. 3. Вычислить сумму площадей всех получившихся треугольников. 4. Взять 2-ю вершину многоугольника и выполнить для нее действия пунктов 2 и 3. 5. Аналогично поступаем с 3, 4, 5 и т.д. вершинами. За истинную площадь многоугольника принимаем наименьшую из полученных сумм площадей треугольников.
0
|
||
|
heaRtseAs
|
||||||
| 22.02.2009, 14:34 | ||||||
|
мне не совсем понятно, почему алгоритм решения первой задачи верен.
Не могли бы вы объяснить это? Добавлено через 26 минут 3 секунды Вы находите, пересекаются ли прямые, которым принадлежат отрезки, а потом оцениваете, где находится точка пересечения? я правильно понимаю? и еще один, возможно, совсем глупый вопрос, скажите, пожалуйста, в чем основное отличие кодирования структур от кодирования массивов? нужно написать несколько программ, а как - не могу до конца разобраться. Допустим, вот мы выделили память, считали из файла данные
|
||||||
|
zinurzhan
|
|
| 13.11.2011, 13:43 | |
|
можете пожалуйста написать программу 1, а то я в с не очень
|
|
|
170 / 122 / 61
Регистрация: 06.02.2015
Сообщений: 300
|
||||||
| 06.02.2015, 17:42 | ||||||
|
Пожалуйста необходима помощь в исправлении этой же задачи !
Имеет ли ломанная точку самопересечения 1- да 0 -нет Очень плохо работаю со структурами но алгоритм нахождения точки пересечения правильный
Пожалуйста очень нужна Ваша Помощь !!
0
|
||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 06.02.2015, 18:46 | |
|
В задаче 1 я бы основовался на уравнении отрезка. Вот оно в векторном виде: X = A*t - (1-t)*B 0<=t <=1
Т.е если система из таких уравнений и неравенств относительно 2-х неизвестных s, t имеет решение - они пересекаются, иначе - нет Ax*t + Bx*(t-1) = Cx*s +Dx*(1-s) Ay*t + By*(t-1) = Cy*s +Dy*(1-s) 0 <= t <= 1 0 <= s <= 1 Ax, Ay... -здесь координаты точек
1
|
|
|
170 / 122 / 61
Регистрация: 06.02.2015
Сообщений: 300
|
|
| 06.02.2015, 20:02 | |
|
Спасибо за ответ но переделывать времени уже не осталось
Предположим что условие check_lines правильно определяет пересечения Можете тогда помочь с правильной постановкой цикла и выводом ответа
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||
| 06.02.2015, 21:09 | ||||||
0
|
||||||
| 06.02.2015, 21:09 | |
|
Помогаю со студенческими работами здесь
9
Дано n точек на плоскости, за время n*logn построить (n-1)-звенную ломаную
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение/ Перевод
https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs
. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|