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

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

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

> Провести линию и ... две точки в одной подплоскости, провсети линию через две точки на весь экран
DIMMUA
сообщение 18.05.2007 22:36
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: Дмитрий

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


Добрый день... У меня возникла маленькая неприятность, оказывется я не знаю как провести линию через две точки на весь экран. Т.е. я знаю как соеденить две точки линией и т д... Ну вот чтобы провести линию через эти две точки на весь экран я не знаю как это сделать. Может есть какая-то легкая процедура и т.д.?

К примеру: есть А(100,100) и B(200,200) - нужно провести через них линию

И еще, я так увлекся "украшательством" своей программы, что забыл про свое условие, короче у меня оврал, помогите: Есть уравнение прямой, есть две точки, прямая разбивает плоскость на подплоскости, нужно опеределать лежат ли эти две точки в разных. Уранение прямой разное, в общем виде: sx+ty+u=0 и точки (a,b) и (c,d). Т.е. a,b,c,d,s,t,u вводятся с клавиатуры.

Я прикрепил свой исходник.... Он еще не полность доделал... Немного о нем расскажу, чтобы было понятно: точки А,Б - обычные точки (вводите их около плюс-минус 10) точки X1 и X2 - точки из прямой, т.е. это две точки принадлежащие этой прямой. "Новые данные" - это идет "переработка" под вывод этих точек на координатной плоскости, например точка А(-2;1) - это А(280;220) - ну если учесть, что у меня точка (320;240) это центр, а одна "еденица" - это 20 пикселей.

Вообщем я должен построить прямую на весь экран, которая проходит через точки X1 и X2 и потом опередалеть лежит ли точки А и Б в одной подплоскости.

P.S. Если я что-то непонятно написал, вы спрашивайте...

Сообщение отредактировано: DIMMUA - 18.05.2007 23:10


Прикрепленные файлы
Прикрепленный файл  GRAFIK.PAS ( 1.69 килобайт ) Кол-во скачиваний: 172
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 19.05.2007 11:26
Сообщение #2


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

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

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


DIMMUA, ты выбрал не очень удачные названия точек, Х1 и Х2.. Можно я буду называть их M и N?
Так вот, предложение Michael_Rybak'а заключается в следующем..

Точки как бы представлены векторами, проведенными к ним из начала координат, назовем эти вектора так же, M и N. Тогда разность этих векторов представит сам отрезок:

а=M-N - вектор от точки N к точке M.
b=N-M - наоборот.

Рыбак предлагает умножить этот отрезок на 1000 и отложить, что получится, в обе стороны (продлить).
Тогда мы получим новые две точки, назовем их K и L :

K = M + а*1000
L = N + b*1000

Если расписать это все в координатах, получим:
Kx = Mx + (Mx-Nx)*1000
Ky = My + (My-Ny)*1000
Lx = Nx + (Nx-Mx)*1000
Ly = Ny + (Ny-My)*1000

Вот эти точки и соединяй оператором Line.
Теперь понятнее?

P.S.
DIMMUA, спасибо тебе за нормальную подробную постановку задачи с объяснениями и вежливый человеческий тон. Душа отдыхает в такой теме.. Просто хочется отвечать! smile.gif


Добавлено через 4 мин.
Хочу добавить, что мне метод Рыбака не очень по душе.. Так можно запросто вылететь за пределы диапазона целых чисел. Я бы предложил все же находить точное пересечение линии с границей экрана..


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

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


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

 



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