Название: прорисовка Отправлено: Firefox от Ноябрь 16, 2009, 22:39 У меня вот какая задача. на фрейме рисую QImage на нём квадрат чёрный и координатные оси. Есть 2 массива, один размерностью 820 со случайными числами до 128. второй массив размерностью [128][3]- цвет в формате rgb. рисеутся строчка из 820 точек разного цвета. цвет точки последовательно берётся из массива случайных чисел.таким образом получается строка из разноцветных точек. надо чтоб эта строка по таймеру двигалась вниз а сверху рисовалась ещё одна из разноцветных точек. и так двигался вниз ресунок дорисовываясь сверху. но оси и фон двигаться не должны. а у меня двигается всё вместе.
вот код: Код: int flag=0, flag1=0; Название: Re: прорисовка Отправлено: Firefox от Ноябрь 17, 2009, 10:17 Сделала так что строка выводиться, сдвигается а сверху новая рисуется. эта часть правельно. но пришлось сделать 2 QImage. на одном координатная ось, на другом сам рисунок. но рисунок сдвигается вниз вместе со строчками. и получается что когда строки доходят до верху QImage1 по отношению к координатной оси(QImage2) это уже середина. И ещё когда отображаешь QImage фон у него белого цвета. перекрывает всё предыдущее, как сделать прозрачным?
Название: Re: прорисовка Отправлено: ilyagoo от Ноябрь 17, 2009, 10:38 Оси рисуй на виджете, а QImage выкидывай на нужную область на первом, иначе при растяжении оси поплывут. Водопад можешь перемещать memmove(QImage::bits()...)
Название: Re: прорисовка Отправлено: Igors от Ноябрь 17, 2009, 14:37 По поводу самого водопада: qrand дает "белый шум" (точка никак не связана с соседней). Для задуманного эффекта это не очень подходит, погуглите Perlin Noise - материала море
Название: Re: прорисовка Отправлено: Firefox от Ноябрь 18, 2009, 23:45 Спасибо сделала)) действительно прорисовка осей в конструкторе класса решила проблему)) спасибо всем
|