Advertisement
Guest User

qudro

a guest
Aug 26th, 2022
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. double SpectrumWidget::map(double inputValue, double old_min, double old_max, double new_min, double new_max)
  2. {
  3.     double old_range = old_max - old_min;
  4.     double new_range = new_max - new_min;
  5.     double returnValue = (((inputValue - old_min) * new_range) / old_range) + new_min;
  6.  
  7.     return returnValue;
  8. }
  9.  
  10.  
  11. void SpectrumWidget::paintEvent(QPaintEvent *event)
  12. {
  13.     QPainter painter(this);
  14.     painter.setRenderHint(QPainter::Antialiasing);
  15.     painter.save();
  16.  
  17.     painter.setFont(fontTagsValue);
  18.  
  19.     widthOneSegment = widthLevelSignalColumn + distanceBeetwenLevelSignalColumn;
  20.  
  21.     quantityLevelSignalColumns = this->width()/widthOneSegment;
  22.  
  23.     double offsetX = quantityLevelSignalColumns/2;
  24.  
  25.     double startPointX = selectValue - offsetX * scaleX;
  26.  
  27.     double endPointX = selectValue + offsetX * scaleX;
  28.  
  29.     qDebug() << quantityLevelSignalColumns;
  30.  
  31.     qDebug() << offsetX;
  32.  
  33.     qDebug() << startPointX;
  34.  
  35.     qDebug() << endPointX;
  36.  
  37.     double startSegment = map(floor(startPointX), startPointX, endPointX, 0, quantityLevelSignalColumns);
  38.  
  39.     double endSegment = map(ceil(endPointX), startPointX, endPointX, 0, quantityLevelSignalColumns);
  40.  
  41.     qDebug() << startSegment;
  42.  
  43.     qDebug() << endSegment;
  44.  
  45.     painter.setBrush(QBrush(QColor(255, 0, 0), Qt::SolidPattern));
  46.     painter.setPen(Qt::NoPen);
  47.  
  48.     painter.drawRect(((quantityLevelSignalColumns/2) * widthOneSegment), 150, widthLevelSignalColumn, 30);
  49.  
  50.     painter.setBrush(QBrush(QColor(175,175,175), Qt::SolidPattern));
  51.  
  52.     for(double i = startSegment; i <= endSegment; i++)
  53.     {
  54.         painter.drawRect((i * widthOneSegment), 150 - inputValue[startPointX + i], widthLevelSignalColumn, inputValue[startPointX + i]);
  55.     }
  56.  
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement