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

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

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

 
 Ответить  Открыть новую тему 
> Рисование линии.
сообщение
Сообщение #1





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

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


Всем привет!
Мне вот задали написать процедуру рисования линии с помощью оператора putpixel, вот ссылка на задание http://kikg.ifmo.ru/~igor/g102-141/lr201.htm. Так я вот не знаю как мне это правильно сделать, получилось у меня вот что:

program vosemuglov;
uses graph;
var x1,x2,y1,y2,k,c,r: real;
gd,gm:integer;
procedure Myline(x1,y1,x2,y2:real);

begin

if x1<x2 then
begin
k:=(y2-y1)/(x2-x1);
c:=(y1*x2-y2*x1)/(x2-x1);

repeat
putpixel(round(x1),round(k*x1+c),white);
x1:=x1+0.01
until x1>x2;
end
else
begin

k:=(y1-y2)/(x1-x2);
c:=(y2*x1-y1*x2)/(x1-x2);
repeat
putpixel(round(x2),round(k*x2+c),white);
x2:=x2+0.01
until x2>x1;
end;

end;

но там косяков дофига...


В следующий раз тему удалю. Догадываешься почему? Админ.

Сообщение отредактировано: Oleg_Z -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

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

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


для рисования линии используй алгоритм Брезенхейма.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


А без Брезенхейма никак?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

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

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


Ну давай за основу возьмем то, что ты написал уже...
Ошибки возникнуть могут, когда у тебя при вычислении в знаменателях оказываются нули - то есть линия горизонтальная строится (верт.) значит проще всего рассмотреть эти случаи отдельно...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


Спасибо, я уже все сделал, осталось отчет написать.smile.gif)) До встречи...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ищущий истину
******

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

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


hudoghnik, молодец, что сам смог!
Заходи еще, таким как ты здесь всегда рады!

добавил позже
да... sad.gif я-то думал ты сам решал... а тебе на сурсах решили...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





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

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


Не ну ты уж совсем не огорчайся, мне там только с оператором помогли, а помимо этого мне ещё и восьмиугольник рисовать надо было, а самое галимое - это отчет по всему этому делать надо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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