Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > графики


Автор: TORQUE 20.12.2005, 18:56
Отрезки на плоскости задаются парами целочисленных координат концевых точек. Определить, пересекаются ли 2 отрезка.
немогу понять как сделать прогу помогите smile

Автор: Fighter 20.12.2005, 19:52
Цитата(TORQUE @ 20.12.2005, 18:56)
Отрезки на плоскости задаются парами целочисленных координат концевых точек. Определить, пересекаются ли 2 отрезка.


Для начала это чистейшей воды математика.

Автор: Zero 20.12.2005, 23:04
Вообще на первый взгляд, сразу как то нормальное ничё и не предумывается...

Если решать графически, то там просто конечно, программно строятся две прямые на графике, и если пиксели пересекаются, то.... ну ясно.

Если аналитически, то можно например по формуле: (x-x0)/(x1-x0)=(y-y0)/(y1-y0) построить прямую, и потом по уравнениям прямым определить имеется ли общая точка пересечения... Но как это реализовать программно (чтобы без гемора) пока нету времени думать. smile Сессия блин. smile
Мож попоже если чё придёт в голову напишу.

Автор: Fighter 21.12.2005, 03:05
Цитата(TORQUE @ 20.12.2005, 18:56)
Отрезки на плоскости задаются парами целочисленных координат концевых точек. Определить, пересекаются ли 2 отрезка.
немогу понять как сделать прогу помогите


Тебе кстати надо это графически решить, или можно в текстовом режиме, и чтобы программа просто выводила на экран сообщение, что отрезки пересекаются.

Автор: Zero 21.12.2005, 13:17
Цитата(Fighter @ 21.12.2005, 04:05)
Тебе кстати надо это графически решить, или можно в текстовом режиме, и чтобы программа просто выводила на экран сообщение, что отрезки пересекаются.

Fighter а ты вот тут:
Цитата(TORQUE @ 20.12.2005, 19:56)
Определить, пересекаются ли 2 отрезка.

какое-нибудь упомянание про графики видел???

Автор: TORQUE 21.12.2005, 16:58
Спасибо всем кто помогоал я решил её
а теперь вышла другая проблема как наити плошадь S, закрашенную в красный цвет.
Если кординаты двух многоугольников заданы.

Автор: TORQUE 21.12.2005, 16:59
Спасибо всем кто помогоал я решил её
а теперь вышла другая проблема как наити плошадь S, закрашенную в красный цвет.
Если кординаты двух многоугольников заданы.

Автор: Zero 21.12.2005, 17:16
Цитата(TORQUE @ 21.12.2005, 17:59)
Спасибо всем кто помогоал я решил её

Дык, ты хоть решение покажи, а то вдруг, у кого-нибудь ещё появится такой вопрос, и воспользовавшись поиском сможет найти ответ. smile
Цитата(TORQUE @ 21.12.2005, 17:59)
а теперь вышла другая проблема как наити плошадь S, закрашенную в красный цвет.

PS: Новые вопросы, задавай в новых темах. (чтобы облегчить поиск тех, кого этот вопрос вдруг заинтерисует, и не путать тех кто ищет ответ на предыдущий вопрос)

Автор: TORQUE 21.12.2005, 17:31
Цитата
Дык, ты хоть решение покажи, а то вдруг, у кого-нибудь ещё появится такой вопрос, и воспользовавшись поиском сможет найти ответ. 

Решение: только формулы V:=((x4-x3)(y1-y3)-(y4-y3)(x1-x3)) / ((y4-y3)(x2-x1)-(x4x3)(y2-y1))
после с помощью V находим
x5:=x1+v(x2-x1)
y5:=y1+v(y2-y1)
x5,y5 кординаты пересечения
x1,y1-y1,y2 линия A
x3,y3-x4,y4 линия B
Цитата
PS: Новые вопросы, задавай в новых темах. (чтобы облегчить поиск тех, кого этот вопрос вдруг заинтерисует, и не путать тех кто ищет ответ на предыдущий вопрос)

этот вопрос по той же теме

Автор: Zero 21.12.2005, 23:03
Первое что приходит в голову, это свести задачу к нахождению точек в виде (x,y), которые входят в область первого и второго многоугольника, естественно с заданной дискретностью (точностью) ─ в одной системе координат, потом каждый элемент массива сравнить между собой, т.е. если точки совпали, то счётчику прибавлять единицу. И в конце, умножить значение счётчика, на заданную точность, т.е. если например, расстояние между отдельными точками, взять 0,1 ─ то площадь будет равна = количество точек пересечения, тоесть значение счётчика умноженное на 0,1.
Добавлено @ 23:05
Но можно ещё, каким-нибудь способом определить все точки пересечения, многоугольников и общие концевые точки, отдельных многоуольников, и в заданном пространстве найти площадь, но это наверно более геморно будет.

Автор: TORQUE 22.12.2005, 11:41
Zero непонял объясни чуть чуть получше (заранее спасибо) smile

Автор: Zero 22.12.2005, 15:35
Цитата(TORQUE @ 22.12.2005, 12:41)
непонял объясни чуть чуть получше

PS: такие темы надо писать в разделе алгоритмы....
И поиск по интернету для начала не повредит (один запрос рамблера, и вот результат):
http://cityref.ru/get.php?id=12174
http://allbest.ru/referats/search.cgi?q=%C2%FB%F7%E8%F1%EB%E5%ED%E8%FF%20%EF%EB%EE%F9%E0%E4%E8%20%EF%F0%EE%E8%E7%E2%EE%EB%FC%ED%EE%E3%EE%20%EC%ED%EE%E3%EE%F3%E3%EE%EB%FC%ED%E8%EA%E0.

Автор: TORQUE 5.1.2006, 12:37
Чё никто незнает как решить эту задачу.
Помогите чтоли smile smile smile

Автор: TORQUE 26.1.2006, 16:47
Люди чё то я про эту задачу забыл.
Попробуйте сейчас решить её. Буду очень благодарен за старания.
Как наити плошадь S, закрашенную в красный цвет.
Если кординаты двух многоугольников заданы.
Рисунок выше
Цитата(TORQUE @ 21.12.2005, 16:59 Найти цитируемый пост)

1.JPG 4,41 Kb


Автор: Zero 27.1.2006, 00:12
Дык я же тебе ссылки скинул.

Автор: TORQUE 27.1.2006, 11:11
У меня эти сылки не открываются!!
Добавлено @ 11:17
Там ничего такого нету. Zero

Автор: TORQUE 28.1.2006, 10:37
Люди скиньте хоть что нибудь об этой программе хоть код, хоть алгоритм, хоть формулы, хоть что.
Просто я сильно привязался к этой задаче. Очень сильно хочу её решить!!! Но немогу smile smile smile

Автор: TORQUE 30.1.2006, 16:16
Люди я не успокоюсь пока вы мне не дадите ответ или решение. smile smile smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)