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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Michael_Rybak
сообщение 19.05.2007 22:54
Сообщение #2


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

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


Для вывода используй TextOut или OutText, уже не помню, как в Паскале.

Что касается выхода за диапазон - можно не умножать на 1000, а умножать на 2 до тех пор, пока за экран не выйдем. Так точно останемся в Integer.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DIMMUA
сообщение 20.05.2007 11:22
Сообщение #3


Новичок
*

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

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


Цитата(Michael_Rybak @ 19.05.2007 22:54) *

Для вывода используй TextOut или OutText, уже не помню, как в Паскале.

Что касается выхода за диапазон - можно не умножать на 1000, а умножать на 2 до тех пор, пока за экран не выйдем. Так точно останемся в Integer.


OutText или OutTextXY - это вывод обычного текста, а мне нужно вывести значение переменной. Например а=2, я пишу: OutTxet('a = ',a) - но паскаль выдает ошибку, он предлагает сделать OutText('a = '), т.е. я не могу вывести "а = 2" в графичеком режиме, а если написать writeln('a = ',a) - то этой надписи не видно (в графическом режиме).

Насчет выхода из диапазона я сделал так:
новые точки:=исходные*2 - если после этого, хоть одна точка остается в пределах экрана, то
новые точки:=исходные*3 - т.е. сначла пробую умножать на 2, потом на 3 и т.д....

Сообщение отредактировано: DIMMUA - 20.05.2007 11:23
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 21.05.2007 2:21
Сообщение #4


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

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


Цитата(DIMMUA @ 20.05.2007 11:22) *

OutText или OutTextXY - это вывод обычного текста, а мне нужно вывести значение переменной. Например а=2, я пишу: OutTxet('a = ',a) - но паскаль выдает ошибку, он предлагает сделать OutText('a = '), т.е. я не могу вывести "а = 2" в графичеком режиме, а если написать writeln('a = ',a) - то этой надписи не видно (в графическом режиме).


Тогда переведи значение переменной в строку с помощью процедуры Str, и потом юзай OutText.

Цитата(DIMMUA @ 20.05.2007 11:22) *

Насчет выхода из диапазона я сделал так:
новые точки:=исходные*2 - если после этого, хоть одна точка остается в пределах экрана, то
новые точки:=исходные*3 - т.е. сначла пробую умножать на 2, потом на 3 и т.д....


Ага, молодец. Так тоже можно, просто лучше, имо, коэффициент увеличивать не линейно (2, 3, 4, 5, ..) а экспоненциально (2, 4, 8, 16, 32 ...) - быстрее вылезешь за экран smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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