Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > формула вывода прямой


Автор: goodking 6.4.2010, 17:52
Привет! Подскажите пожалуйста, что я делаю неправильно, хочу вывести прямую линию на графический ЖКИ по двум точкам (x1,x2,y1,y2)

Код



x1=10;
y1=15;

x2=67;
y2=50;


for (x=x1;x<x2;x++)
{
y=((((x-x1)/(x2-x1))*(y2-y1))+y1);

PutPixelXYLCD(x,y,1);//подпрограмма установки бита по заданному адресу
};




выводить начинает правильно с заданного места но почему-то только по горизонтали! С чем это связано??

Автор: Ivan. 6.4.2010, 19:50
почитай алгоритм Брезенхема

Автор: xvr 7.4.2010, 11:00
Цитата(goodking @  6.4.2010,  17:52 Найти цитируемый пост)
выводить начинает правильно с заданного места но почему-то только по горизонтали! С чем это связано?? 
С тем, что деление выполняется целочисленное. Либо переделай все на плавающую точку, либо ищи алгоритм Брезенхема (как тут уже советовали)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)