Рисование линий на сетке(как в редакторе ресурсов)
От: bond  
Дата: 12.10.01 23:40
Оценка:
Привет All.
Вообще-то из темы понятно.
Не могу организовать рисование фигур
на сетке(как в графическом редакторе ресурсов VC++ ).Хотя бы линию ...
Re: Рисование линий на сетке(как в редакторе ресурсов)
От: PSP Беларусь  
Дата: 14.10.01 11:48
Оценка:
Здравствуйте bond, Вы писали:

B>Привет All.

B>Вообще-то из темы понятно.
B>Не могу организовать рисование фигур
B>на сетке(как в графическом редакторе ресурсов VC++ ).Хотя бы линию ...

Так а в чем проблема? неужели алгоритм рисования линии не можешь найти?
Всегда Ваш, PSP.
Re: Рисование линий на сетке(как в редакторе ресурсов)
От: bond  
Дата: 16.10.01 22:39
Оценка:
Здравствуйте bond, Вы писали:

Ты имеешь в виду ax+bx+c=0?
Понимаешь в чем дело,мне нужно рисовать на сетке(читай — массиве)
т.е мужно получить координаты всех точек линии(фигур) и занести
их в массив,а также нарисовать эту линию на квадратах экрана.
Я имею две точки(или квадрата) start(x1,y1) и end(x2,y2)
Вся проблема в том ,что пикселы я задаю в integer,
а при исползовании ax+by+c=0 я получаю float так как
масштаб экрана по OX и OY разные.
Попробуй нарисовать простую линию на экране без LineTo(),
т.е. получи при помощи формулы x и y точек ,и рисуй через SetPixel()-
сразу станет понятно.Чтоб тебе было легче:
a= end.y -start.y;
b= start.x-end.x;
c= start.y*(end.x-start.x)-
start.x*(end.y-start.y);
В принципе я решил проблему через StrechBlt(),думаю можно также решить
через SetMapMode(MM_ANISOTROPIC),но второй метод у меня не получился.
Re[2]: Рисование линий на сетке(как в редакторе ресурсов)
От: The Lex Украина  
Дата: 19.10.01 05:47
Оценка:
Здравствуйте bond, Вы писали:

B>Здравствуйте bond, Вы писали:


B>Ты имеешь в виду ax+bx+c=0?

B>Понимаешь в чем дело,мне нужно рисовать на сетке(читай — массиве)
B>т.е мужно получить координаты всех точек линии(фигур) и занести
B>их в массив,а также нарисовать эту линию на квадратах экрана.
B>Я имею две точки(или квадрата) start(x1,y1) и end(x2,y2)
B>Вся проблема в том ,что пикселы я задаю в integer,
B>а при исползовании ax+by+c=0 я получаю float так как
B>масштаб экрана по OX и OY разные.
B>Попробуй нарисовать простую линию на экране без LineTo(),
B>т.е. получи при помощи формулы x и y точек ,и рисуй через SetPixel()-
B> сразу станет понятно.Чтоб тебе было легче:
B> a= end.y -start.y;
B> b= start.x-end.x;
B> c= start.y*(end.x-start.x)-
B> start.x*(end.y-start.y);
B>В принципе я решил проблему через StrechBlt(),думаю можно также решить
B>через SetMapMode(MM_ANISOTROPIC),но второй метод у меня не получился.

Голь на выдумку хитра, скажу я вам, господа! Можно поиздеваться так вот: рисувать по контексту в памяти, контекст сразу же отображать в картинку которая имеет реальный размер и... Правильно, правильно! Увеличить в n раз и наложить сеточку! А то потом еще и окружности захочется рисовать, и заливочку...
Голь на выдумку хитра, однако...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.