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

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

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

 
 Ответить  Открыть новую тему 
> Рисование линии.
hudoghnik
сообщение 17.02.2005 17:06
Сообщение #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 - 17.02.2005 17:18
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 17.02.2005 17:28
Сообщение #2


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

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

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


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


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





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

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


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


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

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

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


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


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





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

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


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


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

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

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


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

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


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





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

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


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

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

 



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