Помощь - Поиск - Пользователи - Календарь
Полная версия: Рисование линии.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
hudoghnik
Всем привет!
Мне вот задали написать процедуру рисования линии с помощью оператора 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;

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


В следующий раз тему удалю. Догадываешься почему? Админ.
Altair
для рисования линии используй алгоритм Брезенхейма.
hudoghnik
А без Брезенхейма никак?..
Altair
Ну давай за основу возьмем то, что ты написал уже...
Ошибки возникнуть могут, когда у тебя при вычислении в знаменателях оказываются нули - то есть линия горизонтальная строится (верт.) значит проще всего рассмотреть эти случаи отдельно...
hudoghnik
Спасибо, я уже все сделал, осталось отчет написать.smile.gif)) До встречи...
Altair
hudoghnik, молодец, что сам смог!
Заходи еще, таким как ты здесь всегда рады!

добавил позже
да... sad.gif я-то думал ты сам решал... а тебе на сурсах решили...
hudoghnik
Не ну ты уж совсем не огорчайся, мне там только с оператором помогли, а помимо этого мне ещё и восьмиугольник рисовать надо было, а самое галимое - это отчет по всему этому делать надо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.