Guest User

qudro2

a guest
Aug 26th, 2022
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. double 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 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.     double value1 = round(offsetX*10)/10;
  49.  
  50.     painter.drawRect((value1 * widthOneSegment), 150, widthLevelSignalColumn, 30);
  51.  
  52.     painter.setBrush(QBrush(QColor(175,175,175), Qt::SolidPattern));
  53.  
  54.     for(double i = startSegment; i <= endSegment; i++)
  55.     {
  56.         double value = round(i*10)/10;
  57.  
  58.         qDebug() << "value: " << value;
  59.         qDebug() << "value * widthOneSegment:" << (value * widthOneSegment);
  60.  
  61.         painter.drawRect(value * widthOneSegment, 150 - inputValue[startPointX + i], widthLevelSignalColumn, inputValue[startPointX + i]);
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment