Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double SpectrumWidget::map(double inputValue, double old_min, double old_max, double new_min, double new_max)
- {
- double old_range = old_max - old_min;
- double new_range = new_max - new_min;
- double returnValue = (((inputValue - old_min) * new_range) / old_range) + new_min;
- return returnValue;
- }
- void SpectrumWidget::paintEvent(QPaintEvent *event)
- {
- QPainter painter(this);
- painter.setRenderHint(QPainter::Antialiasing);
- painter.save();
- painter.setFont(fontTagsValue);
- widthOneSegment = widthLevelSignalColumn + distanceBeetwenLevelSignalColumn;
- quantityLevelSignalColumns = this->width()/widthOneSegment;
- double offsetX = quantityLevelSignalColumns/2;
- double startPointX = selectValue - offsetX * scaleX;
- double endPointX = selectValue + offsetX * scaleX;
- qDebug() << quantityLevelSignalColumns;
- qDebug() << offsetX;
- qDebug() << startPointX;
- qDebug() << endPointX;
- double startSegment = map(floor(startPointX), startPointX, endPointX, 0, quantityLevelSignalColumns);
- double endSegment = map(ceil(endPointX), startPointX, endPointX, 0, quantityLevelSignalColumns);
- qDebug() << startSegment;
- qDebug() << endSegment;
- painter.setBrush(QBrush(QColor(255, 0, 0), Qt::SolidPattern));
- painter.setPen(Qt::NoPen);
- painter.drawRect(((quantityLevelSignalColumns/2) * widthOneSegment), 150, widthLevelSignalColumn, 30);
- painter.setBrush(QBrush(QColor(175,175,175), Qt::SolidPattern));
- for(double i = startSegment; i <= endSegment; i++)
- {
- painter.drawRect((i * widthOneSegment), 150 - inputValue[startPointX + i], widthLevelSignalColumn, inputValue[startPointX + i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement