|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.10.2018, 11:35 | #1 |
Регистрация: 02.10.2018
Сообщений: 9
|
Язык Си
Многоугольник задан целочисленными координатами x1,y1,x2,y2,xn,yn ,нужно проверить его на выпуклость и самопересечение.Как это сделать с помощью векторов?
|
08.10.2018, 11:37 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Открыть школьный учебник геометрии и выписать формулы.
|
08.10.2018, 14:35 | #3 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,555
|
Не все так просто. Насколько я в курсе, школьное образование сейчас идет к максимальному упрощению. Для отверточного производства интегралы не нужны.
Я бы для каждой прямой (в цикле от 1 до n ) проверял бы - все остальные точки по одну ли сторону ? А насчет самопересечения - так сразу и не скажу, бошку включать надо или у дяди Гуголя спрашивать. Одно видится точно - если выпуклый, то нет самоп.-я. В общем, это что-то из геодезии. Так что стоило бы помочь человеку - не кодом, а хотя бы советом и пинком в нужном направлении. Последний раз редактировалось digitalis; 08.10.2018 в 14:39. |
08.10.2018, 14:45 | #4 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
Та ладно. По тупому: самопересечение будет, если найдется еще хоть одна точка пересечения кроме "концевых" соседей. |
|
08.10.2018, 14:58 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,555
|
Ну вот, пошла конструктивная помощь А насчет самопересечения - так вроде в определении если самопер., то это уже и не многоугольник.
А мировая мысль в этом направлении не дремлет: https://math.stackexchange.com/quest...f-intersection |
08.10.2018, 15:02 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Ну тут как определять. В самом общем виде это фигура ограниченная ломанной...
|
08.10.2018, 15:34 | #7 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,817
|
по поводу выпуклости для двух пар точек определяй угол наклона. он должен либо всё время расти (идём по точкам против часовой стрелки) либо всё время уменьшаться( идём по часовой стрелке). если в какой-то момент угол начал расти в другую сторону, то фигура невыпуклая в этом месте.
а по поводу самопересечения. грубый вариант: тут лучше использовать массив - и туда загнать координаты X и Y точек линий и потом сделать поиск по парам точек. если совпадут - значит, где-то пересекаются грани а если пересечение идёт в точке с неровным (иррациональным)значением, то лучше при помощи векторов. или в поисковике найди условия пересечения двух прямых
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
Последний раз редактировалось NetSpace; 08.10.2018 в 15:36. |
08.10.2018, 15:36 | #8 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
А если пересекаются серединами? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
язык С | карабах | Фриланс | 3 | 05.12.2017 21:21 |
Перевод кода c языка Pascale в язык PHP или в язык JavaScript | Javlonka | JavaScript, Ajax | 1 | 30.09.2014 22:48 |
Язык С | s2df | Помощь студентам | 4 | 01.11.2013 10:57 |
Язык С | anka1234 | Помощь студентам | 0 | 15.12.2012 21:54 |
Язык С++ | nes@ | Помощь студентам | 0 | 13.05.2010 21:18 |