Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Помогите с алгоритмом


Автор: Andrey44 14.8.2007, 16:24
Есть массив RGBQUAD rgb[256] заполненный значениями.

Нужно нарисовать палитру , но только наискосок.
Код



        for(int j = 0; j < 11; j ++){
            for(i = 0; i < 255; i++){
    
    
                _bitmap->SetPixel(13+j, count, Color(255, rgb.Red[i], rgb.Green[i], rgb.Blue[i]));
                count++;
            }
            count = 0;
        }

Так рисую простую палитру-полоску. А мне надо нарисовать под углом.
GDI+ LinearGradientBrush - не подходит так-как в массиве значения заполняются в функции.

Присоеденил бы картинку  , но не знаю как. smile 

Автор: Earnest 14.8.2007, 17:10
Используй тривиальную геометрию: определи наклонные прямоугольники (полигоны) толщиной в 1 пиксел, т.е. нарежь пряоугольник наклонной палитры линиюми, перпендикулярными длинным сторонам. А дальше - полигон из 5 точек, зарисовать очередным цветом. Если будешь указывать точки в одинаковом порядке, есть надежда что пропусков не будет...

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