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

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

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

> Отрезкм
Reflex
сообщение 14.04.2007 22:14
Сообщение #1


Пионер
**

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

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


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


--------------------
Нам не дано предугадать как наше слово отзовется...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 17.04.2007 9:49
Сообщение #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

 



- Текстовая версия 24.06.2025 7:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"