Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Небольшая Геометрическая задачка

Автор: nulbok 27.11.2006 5:06

А смысл вот в чём. Рисуются на экране произвольно 2 отрезка. В случае, если отрезки пересекаются , точка персечения становится центром окружности , с радиусом (неважно каким).

Собственно проблема в том, как узнать пересекаются ли прямые, точнее как узнать координаты точки персечения. Поиском искал. Ничего толкового не нашел. Заранее спасибо.

Автор: Bokul 27.11.2006 5:09

А как задаются отрезки? Уравнением, координатами его концов?

Автор: nulbok 27.11.2006 5:20

Координатами его концов. Используя LineTo короче ..

blink.gif Waiting 4 replay.

Автор: volvo 27.11.2006 5:54

Цитата(nulbok @ 27.11.2006 0:06)
как узнать координаты точки персечения.

http://algolist.manual.ru/maths/geom/intersect/lineline2d.php
( теория... Будут проблемы с реализацией - Welcome back smile.gif )

Автор: nulbok 27.11.2006 13:40

Спс..

Я конечно не специолист.. но мне кажется , что там отрезки задаются уравнением.. а мне нуна координатами..

Автор: volvo 27.11.2006 14:19

Какие же уравнения? 4 точки, координаты x1, x2, x3, x4, y1, y2, y3, y4 - через них все выводится... blink.gif

const
n = 4;
x: array[1 .. 4] of integer = (3, 5, 3, 6);
y: array[1 .. 4] of integer = (3, 7, 7, 1);

var
Z, Ua, Ub: real;
pX, pY: real;

begin
Z := (y[4]-y[3])*(x[2]-x[1]) - (x[4]-x[3])*(y[2]-y[1]);
Ua := ((x[4]-x[3])*(y[1]-y[3]) - (y[4]-y[3])*(x[1]-x[3]))/z;
{ Ub := ((x[2]-x[1])*(y[1]-y[3]) - (y[2]-y[1])*(x[1]-x[3]))/z; }

pX := x[1] + Ua*(x[2] - x[1]);
pY := y[1] + Ua*(y[2] - y[1]);
writeln('X = ', pX:10:5, ' ; Y = ', pY:10:5);
end.
(не забудь проверить принадлежность Ua, Ub интервалу, о чем говорится в статье...)

Автор: nulbok 27.11.2006 15:06

Может мне кто-нибудь пояснить.. что ЭТО делает.. smile.gif Что такое Х и У.. и вообще.. unsure.gif

Автор: Michael_Rybak 27.11.2006 15:30

Учитывая, что всё, что у тебя есть - координаты концов отрезков, а всё, что тебе надо - координаты точки их пересечения, может быть ты сам догадаешься, что такое X и Y ? ;)

Автор: nulbok 27.11.2006 16:14

... нифига не понял, как найти точку пересечения, но всё равно спа... вот щас писал и понял smile.gif спасибо smile.gif