Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Daniel от Июнь 24, 2011, 21:21



Название: Щели между прямоугольниками
Отправлено: Daniel от Июнь 24, 2011, 21:21
В общем, получается такая картина:
(http://img121.imageshack.us/img121/503/unledpgy.png)

Это заполнено одинаковыми прямоугольниками разной прозрачности. А хотелось бы, чтобы не было щелей, посоветуйте что-то, пожалуйста :)
Значения координат и размеров во float, но все равно при масштабировании вот такая фигня :( Есть ли рецепт?


Название: Re: Щели между прямоугольниками
Отправлено: ecspertiza от Июнь 24, 2011, 21:32
советую выложить код рисования сюда))) ибо что то в нем не так ))))


Название: Re: Щели между прямоугольниками
Отправлено: Daniel от Июнь 24, 2011, 21:42
Значит что происходит при изменении размера окна:
Код:
void Graphics::RecalcSizes()
{
//взяли текущие параметры шир.-выс.
    gr_width = this->width(); 
    gr_height = this->height();
//посчитали единичные размеры
    x_size = gr_width / (_MI - 2);
    y_size = gr_height / (_MK - 2);
}
Теперь сам код рисования:
Код:
//получили значение в точке, согласно чему выставили прозрачность цвету и рисуем
for (int j = 0; j < _MK - 2; j++)
        for (int i = 0; i < _MI - 2; i++)
        {
                float alpha = a[i + 2][currentFi][j + 2];

                QColor col = QColor::fromRgba(fillColor);
                col.setAlpha(255 * alpha);
                painter.setBrush(col);
                painter.setPen(Qt::transparent); //можете предложить тут поставить тоже col, но тогда будут щели с цветом
                painter.drawRect(i * x_size, gr_height - (j + 1) * y_size, x_size, y_size);
                painter.setPen(Qt::black);
        }   


Название: Re: Щели между прямоугольниками
Отправлено: GreatSnake от Июнь 24, 2011, 22:43
Цитировать
painter.setPen(Qt::transparent);
либо
Код
C++ (Qt)
painter.setPen(Qt::NoPen);
либо
Код
C++ (Qt)
painter.fillRect();
если не поможет, то попробуй
Код
C++ (Qt)
QPen::setCosmetic( true );


Название: Re: Щели между прямоугольниками
Отправлено: Daniel от Июнь 24, 2011, 23:13
GreatSnake, спасибо за советы, к сожалению не помогли, НО я придумал как: при вычислении x_size, y_size, я их округлил - все стало отлично!


Название: Re: Щели между прямоугольниками
Отправлено: GreatSnake от Июнь 25, 2011, 11:42
GreatSnake, спасибо за советы, к сожалению не помогли, НО я придумал как: при вычислении x_size, y_size, я их округлил - все стало отлично!
Хм, а они (x_size, y_size) разве не qreal  ???


Название: Re: Щели между прямоугольниками
Отправлено: Daniel от Июнь 26, 2011, 14:01
Хм, а они (x_size, y_size) разве не qreal  ???
У меня - float  ::)