Advertisement
Guest User

Untitled

a guest
Oct 19th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. void Window::paintNavTrace(QPainter& painter)
  2. {
  3.     painter.save();
  4.     painter.setPen(QPen(Qt::green, 3, Qt::SolidLine));
  5.     QPointF prev, next;
  6.     double angle, stepLen;
  7.     double deltaAngle = 0;//- 1.57 * 0.7;
  8.  
  9.     int n_last_steps = 150 ;
  10.     double oldStepLen = 0.0;
  11.     next = getScreenPoint(mClosestReferencePoints[mLocCounter].x,
  12.                           mClosestReferencePoints[mLocCounter].y);
  13.  
  14.     for(int curLocCounter = mLocCounter; curLocCounter > 0 && curLocCounter > mLocCounter - n_last_steps; curLocCounter--) //
  15.     {
  16.         NavigationState curNavState = mNavigationStates[curLocCounter];
  17.         stepLen = curNavState.getStepLen();
  18.         if (curLocCounter > 0 && std::fabs(stepLen - oldStepLen) > 1e-6) {
  19.             oldStepLen = stepLen;
  20.             stepLen *= mScale;
  21.             angle = curNavState.getHeading() + deltaAngle; //- firstStepAngle; //+ refAngle
  22.             prev = QPointF(next.rx() - stepLen * std::cos(angle),
  23.                            next.ry() + stepLen * std::sin(angle));
  24.             painter.drawLine(prev.rx(), prev.ry(), next.rx(), next.ry());
  25.             next = prev;
  26.         }
  27.     }
  28.     painter.restore();
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement