IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Отрезкм
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 118
Пол: Женский

Репутация: -  0  +


Нуно сделать прогу, которая по двух отрезках находила их пересечение. Искала, но ни одна программа не работает sad.gif


--------------------
Нам не дано предугадать как наше слово отзовется...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Отведай мою стряпню.. smile.gif
type
tPoint=record
x,y:real
end;
tLine=record
P1,P2:tPoint
end;

procedure InterSection(L1,L2:tLine;var P:tPoint);
var
k1,k2:real;
begin
with L1 do k1:= (P2.y-P1.y)/(P2.x-P1.x);
with L2 do k2:= (P2.y-P1.y)/(P2.x-P1.x);
P.x:= (L1.P1.y - L2.P1.y + L2.P1.x*k2 - L1.P1.x*k1) / (k2-k1);
with L1 do P.y:= P1.y + (P.x-P1.x)*k1;
end;

var
L1,L2:tLine;
P:tPoint;

begin
with L1 do begin
P1.x:=-2;
P1.y:=-2;
P2.x:=+2;
P2.y:= 0;
end;
with L2 do begin
P1.x:= 0;
P1.y:= 1;
P2.x:=+2;
P2.y:=-2;
end;
InterSection(L1,L2,P);
with P do WriteLn('X=',x:7:3,' Y=',y:7:3);
ReadLn
end.


Добавлено через 3 мин.
Эта процедура выдаст ошибку, если отрезок расположен вдоль у.
Но этот случай гораздо проще, и его можно рассмотреть отдельно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.09.2025 14:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name