![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
DIMMUA |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Добрый день... У меня возникла маленькая неприятность, оказывется я не знаю как провести линию через две точки на весь экран. Т.е. я знаю как соеденить две точки линией и т д... Ну вот чтобы провести линию через эти две точки на весь экран я не знаю как это сделать. Может есть какая-то легкая процедура и т.д.?
К примеру: есть А(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 Прикрепленные файлы ![]() |
![]() ![]() |
Michael_Rybak |
![]()
Сообщение
#2
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Для вывода используй TextOut или OutText, уже не помню, как в Паскале.
Что касается выхода за диапазон - можно не умножать на 1000, а умножать на 2 до тех пор, пока за экран не выйдем. Так точно останемся в Integer. |
DIMMUA |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Для вывода используй 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 |
Michael_Rybak |
![]()
Сообщение
#4
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
OutText или OutTextXY - это вывод обычного текста, а мне нужно вывести значение переменной. Например а=2, я пишу: OutTxet('a = ',a) - но паскаль выдает ошибку, он предлагает сделать OutText('a = '), т.е. я не могу вывести "а = 2" в графичеком режиме, а если написать writeln('a = ',a) - то этой надписи не видно (в графическом режиме). Тогда переведи значение переменной в строку с помощью процедуры Str, и потом юзай OutText. Насчет выхода из диапазона я сделал так: новые точки:=исходные*2 - если после этого, хоть одна точка остается в пределах экрана, то новые точки:=исходные*3 - т.е. сначла пробую умножать на 2, потом на 3 и т.д.... Ага, молодец. Так тоже можно, просто лучше, имо, коэффициент увеличивать не линейно (2, 3, 4, 5, ..) а экспоненциально (2, 4, 8, 16, 32 ...) - быстрее вылезешь за экран ![]() |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2025 3:21 |