示例#1
0
void drawPath()
{
	for (float g = 0; g < 1; g += .005)
	{
		glColor3f(0, 0, 1);
		Vector4 test = x1.lip(g, .1);
		drawDots(test);
	}
	for (float g = 0; g < 1; g += .005)
	{
		glColor3f(1, 1, 0);
		Vector4 test = x2.lip(g, .1);
		drawDots(test);
	}
	for (float g = 0; g < 1; g += .005)
	{
		glColor3f(1, 0, 0);
		Vector4 test = x3.lip(g, .1);
		drawDots(test);
	}
	for (float g = 0; g < 1; g += .005)
	{
		glColor3f(1, 1, 1);
		Vector4 test = x4.lip(g, .1);
		drawDots(test);
	}
}
/*!
  \brief Draw the line part (without symbols) of a curve interval.
  \param painter Painter
  \param style curve style, see QwtPlotCurve::CurveStyle
  \param xMap x map
  \param yMap y map
  \param canvasRect Contents rectangle of the canvas
  \param from index of the first point to be painted
  \param to index of the last point to be painted
  \sa draw(), drawDots(), drawLines(), drawSteps(), drawSticks()
*/
void QwtPlotCurve::drawCurve( QPainter *painter, int style,
    const QwtScaleMap &xMap, const QwtScaleMap &yMap,
    const QRectF &canvasRect, int from, int to ) const
{
    switch ( style )
    {
        case Lines:
            if ( testCurveAttribute( Fitted ) )
            {
                // we always need the complete
                // curve for fitting
                from = 0;
                to = dataSize() - 1;
            }
            drawLines( painter, xMap, yMap, canvasRect, from, to );
            break;
        case Sticks:
            drawSticks( painter, xMap, yMap, canvasRect, from, to );
            break;
        case Steps:
            drawSteps( painter, xMap, yMap, canvasRect, from, to );
            break;
        case Dots:
            drawDots( painter, xMap, yMap, canvasRect, from, to );
            break;
        case LinesAndDots:
            {
                 if ( testCurveAttribute( Fitted ) )
                 {
                     from = 0;
                     to = dataSize() - 1;
                 }
                 drawLines( painter, xMap, yMap, canvasRect, from, to );

                 QPen prev_pen = painter->pen();
                 QPen new_pen  = prev_pen;
                 new_pen.setWidth( prev_pen.width() * 3);

                 painter->setPen( new_pen );
                 drawDots( painter, xMap, yMap, canvasRect, from, to );
                 painter->setPen( prev_pen );
             }
            break;
        case NoCurve:
        default:
            break;
    }
}
示例#3
0
/*!
  \brief Draw the line part (without symbols) of a curve interval.
  \param painter Painter
  \param style curve style, see QwtPlotCurve::CurveStyle
  \param xMap x map
  \param yMap y map
  \param canvasRect Contents rectangle of the canvas
  \param from index of the first point to be painted
  \param to index of the last point to be painted
  \sa draw(), drawDots(), drawLines(), drawSteps(), drawSticks()
*/
void QwtPlotCurve::drawCurve( QPainter *painter, int style,
    const QwtScaleMap &xMap, const QwtScaleMap &yMap,
    const QRectF &canvasRect, int from, int to ) const
{
    switch ( style )
    {
        case Lines:
            if ( testCurveAttribute( Fitted ) )
            {
                // we always need the complete
                // curve for fitting
                from = 0;
                to = dataSize() - 1;
            }
            drawLines( painter, xMap, yMap, canvasRect, from, to );
            break;
        case Sticks:
            drawSticks( painter, xMap, yMap, canvasRect, from, to );
            break;
        case Steps:
            drawSteps( painter, xMap, yMap, canvasRect, from, to );
            break;
        case Dots:
            drawDots( painter, xMap, yMap, canvasRect, from, to );
            break;
        case NoCurve:
        default:
            break;
    }
}
void QwtCurve::drawCurve(QPainter *painter, int style,
    const QwtDiMap &xMap, const QwtDiMap &yMap, int from, int to)
{
    switch (style)
    {
        case NoCurve:
            break;
        case Lines:
            drawLines(painter, xMap, yMap, from, to);
            break;
        case Sticks:
            drawSticks(painter, xMap, yMap, from, to);
            break;
        case Steps:
            drawSteps(painter, xMap, yMap, from, to);
            break;
        case Spline:
            if ( from > 0 || to < dataSize() - 1 )
                drawLines(painter, xMap, yMap, from, to);
            else
                drawSpline(painter, xMap, yMap);
            break;
        case Dots:
            drawDots(painter, xMap, yMap, from, to);
            break;
        default:
            break;
    }
}
示例#5
0
文件: poi-test.C 项目: wixor/ewo
    virtual void draw()
    {
        resize(ci.getWidth(), ci.getHeight());
        drawImage(ci);

        drawDots(ps,dotsize,color);
    }
示例#6
0
文件: PG1.cpp 项目: finajo/cs495
// Whenever anything changes (i.e., Pacman moves), the surface needs to be redrawn for the window to update.
void redraw() {
	SDL_FillRect(mainSurface, NULL, SDL_MapRGB(mainSurface->format,0,0,0));
	
	drawDots();
	movePacmanToOtherSideIfNeeded();
	loopPacmanOnEdges();

	SDL_UpdateWindowSurface(mainWindow);
}
/*!
  Draw a subset of the points

  \param painter Painter
  \param xMap Maps x-values into pixel coordinates.
  \param yMap Maps y-values into pixel coordinates.
  \param canvasRect Contents rectangle of the canvas
  \param from Index of the first sample to be painted
  \param to Index of the last sample to be painted. If to < 0 the
         series will be painted to its last sample.

  \sa drawDots()
*/
void QwtPlotSpectroCurve::drawSeries( QPainter *painter,
    const QwtScaleMap &xMap, const QwtScaleMap &yMap,
    const QRectF &canvasRect, int from, int to ) const
{
    if ( !painter || dataSize() <= 0 )
        return;

    if ( to < 0 )
        to = dataSize() - 1;

    if ( from < 0 )
        from = 0;

    if ( from > to )
        return;

    drawDots( painter, xMap, yMap, canvasRect, from, to );
}
示例#8
0
/**
 * Draws the curve efficiently.
 * @param painter Painter
 * @param xMap Maps x-values into pixel coordinates.
 * @param yMap Maps y-values into pixel coordinates.
 * @param canvasRect Contents rect of the canvas in painter coordinates
 */
void FunctionCurve::drawObject(QPainter *painter, 
  const QwtScaleMap &xMap, const QwtScaleMap &yMap,
  const QRect &canvasRect) const
{
  painter->save();
  QPen p = pen();
  //painter->setRenderHint(QPainter::Antialiasing);
  //p.setJoinStyle(Qt::RoundJoin);
  //p.setCapStyle(Qt::RoundCap);
  painter->setPen(p);
  switch( m_curveStyle )
  {
  case NoCurve: drawNoCurve(painter, xMap, yMap, canvasRect); break;
  case Lines: drawLines(painter, xMap, yMap, canvasRect); break;
  case Sticks: drawSticks(painter, xMap, yMap, canvasRect); break;
  case Steps: drawSteps(painter, xMap, yMap, canvasRect); break;
  case Dots: drawDots(painter, xMap, yMap, canvasRect); break;
  default: drawLines(painter, xMap, yMap, canvasRect); break;
  };
  painter->restore();
}
示例#9
0
文件: draw.c 项目: zjhzyyk/gba-pacman
void drawGameScreen(){
	// FlipPage();
	// drawDiscription();
	// drawMap(10, map);
	// FlipPage();
	drawDiscription();
	drawMap(10, map);
	putDots(0, 60);
	// FlipPage();
	// drawDots(10);
	// FlipPage();
	drawDots(10);
	//draw pacman in the first available position
//	backup(15+10*ptArr[0].x-7, 1+10*ptArr[0].y, 13,13,pacmanBackup);
	initPacMan();
	//draw red ghost in the last available position
//	backup(15+10*ptArr[maxDotNum-1].x-7, 10*ptArr[maxDotNum-1].y-2, 14,14,redBackup);
	drawImage(15+10*ptArr[maxDotNum-1].x-7, 10*ptArr[maxDotNum-1].y-2, 14,14,red);
	redPosition.x = ptArr[maxDotNum-1].x;
	redCurCood.x= COODX(redPosition.x);
	redPosition.y =ptArr[maxDotNum-1].y;
	redCurCood.y= COODY(redPosition.y);
	redPrePosition = redPosition;
	//draw blue ghost one position before red guy
	// FlipPage();
	// drawImage(15+10*ptArr[maxDotNum-2].x-7, 10*ptArr[maxDotNum-2].y-2, 14,14,blue);
	// FlipPage();
	drawImage(15+10*ptArr[maxDotNum-2].x-7, 10*ptArr[maxDotNum-2].y-2, 14,14,blue);
	bluePosition.x = ptArr[maxDotNum-2].x;
	blueCurCood.x= COODX(bluePosition.x);
	bluePosition.y = ptArr[maxDotNum-2].y;
	blueCurCood.y= COODY(bluePosition.y);
	//draw yellow ghost one position before blue
	// drawImage(15+10*ptArr[maxDotNum-3].x-7, 1+10*ptArr[maxDotNum-3].y, 14,14,yellow);
	// yellowPosition.x = ptArr[maxDotNum-3].x;
	// yellowPosition.y = ptArr[maxDotNum-3].y;

}
示例#10
0
void QwtPlotCurve::drawCurve(QPainter *painter, int style,
    const QwtScaleMap &xMap, const QwtScaleMap &yMap,
    int from, int to) const
{
	const int numPoints = (int)dataSize();
	if (!painter || numPoints < 1)
		return;

	if (to < 0 || to >= numPoints)
		to = numPoints - 1;

    switch (style)
    {
        case Lines:
            if ( testCurveAttribute(Fitted) )
            {
                // we always need the complete
                // curve for fitting
                from = 0;
                to = dataSize() - 1;
            }
            drawLines(painter, xMap, yMap, from, to);
            break;
        case Sticks:
            drawSticks(painter, xMap, yMap, from, to);
            break;
        case Steps:
            drawSteps(painter, xMap, yMap, from, to);
            break;
        case Dots:
            drawDots(painter, xMap, yMap, from, to);
            break;
        case NoCurve:
        default:
            break;
    }
}
示例#11
0
void BarLine::draw(QPainter* painter) const
      {
      qreal lw = point(score()->styleS(ST_barWidth));
      qreal y1, y2;
      getY(&y1, &y2);

      QPen pen(curColor(), lw, Qt::SolidLine, Qt::FlatCap);
      painter->setPen(pen);
      qreal mags = magS();

      switch(barLineType()) {
            case BROKEN_BAR:
                  pen.setStyle(Qt::DashLine);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(lw * .5, y1, lw * .5, y2));
                  break;

            case DOTTED_BAR:
                  pen.setStyle(Qt::DotLine);
                  painter->setPen(pen);

            case NORMAL_BAR:
                  painter->drawLine(QLineF(lw * .5, y1, lw * .5, y2));
                  break;

            case END_BAR:
                  {
                  qreal lw2 = point(score()->styleS(ST_endBarWidth));
                  qreal d   = point(score()->styleS(ST_endBarDistance));

                  painter->drawLine(QLineF(lw * .5, y1, lw * .5, y2));
                  pen.setWidthF(lw2);
                  painter->setPen(pen);
                  qreal x = d + lw2 * .5 + lw;
                  painter->drawLine(QLineF(x, y1, x, y2));
                  }
                  break;

            case DOUBLE_BAR:
                  {
                  lw      = point(score()->styleS(ST_doubleBarWidth));
                  qreal d = point(score()->styleS(ST_doubleBarDistance));

                  pen.setWidthF(lw);
                  painter->setPen(pen);
                  qreal x = lw * .5;
                  painter->drawLine(QLineF(x, y1, x, y2));
                  x += d + lw;
                  painter->drawLine(QLineF(x, y1, x, y2));
                  }
                  break;

            case START_REPEAT:
                  {
                  qreal lw2 = point(score()->styleS(ST_endBarWidth));
                  qreal d1  = point(score()->styleS(ST_endBarDistance));

                  qreal x2   =  lw2 * .5;                               // thick line (lw2)
                  qreal x1   =  lw2 + d1 + lw * .5;                     // thin line (lw)
                  qreal x0   =  lw2 + d1 + lw + d1;                     // dot position

                  drawDots(painter, x0);

                  painter->drawLine(QLineF(x1, y1, x1, y2));

                  pen.setWidthF(lw2);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(x2, y1, x2, y2));

                  if (score()->styleB(ST_repeatBarTips)) {
                        symbols[score()->symIdx()][brackettipsRightUp].draw(painter, mags, QPointF(0.0, y1));
                        symbols[score()->symIdx()][brackettipsRightDown].draw(painter, mags, QPointF(0.0, y2));
                        }
                  }
                  break;

            case END_REPEAT:
                  {
                  qreal lw2  = point(score()->styleS(ST_endBarWidth));
                  qreal d1   = point(score()->styleS(ST_endBarDistance));
                  const Sym& dotsym = symbols[score()->symIdx()][dotSym];
                  qreal dotw = dotsym.width(mags);
                  qreal x1   =  dotw + d1 + lw * .5;
                  qreal x2   =  dotw + d1 + lw + d1 + lw2 * .5;

                  drawDots(painter, 0.0);
                  painter->drawLine(QLineF(x1, y1, x1, y2));
                  pen.setWidthF(lw2);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(x2, y1, x2, y2));

                  if (score()->styleB(ST_repeatBarTips)) {
                        qreal x = x2 + lw2 * .5;
                        symbols[score()->symIdx()][brackettipsLeftUp].draw(painter, mags, QPointF(x, y1));
                        symbols[score()->symIdx()][brackettipsLeftDown].draw(painter, mags, QPointF(x, y2));
                        }
                  }
                  break;

            case END_START_REPEAT:
                  {
                  qreal lw2  = point(score()->styleS(ST_endBarWidth));
                  qreal d1   = point(score()->styleS(ST_endBarDistance));
                  const Sym& dotsym = symbols[score()->symIdx()][dotSym];
                  qreal dotw = dotsym.width(mags);

                  qreal x1   =  dotw + d1 + lw * .5;                                // thin bar
                  qreal x2   =  dotw + d1 + lw + d1 + lw2 * .5;                     // thick bar
                  qreal x3   =  dotw + d1 + lw + d1 + lw2 + d1 + lw * .5;           // thin bar
                  qreal x4   =  dotw + d1 + lw + d1 + lw2 + d1 + lw + d1;           // dot position

                  drawDots(painter, .0);
                  drawDots(painter, x4);
                  painter->drawLine(QLineF(x1, y1, x1, y2));

                  pen.setWidthF(lw2);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(x2, y1, x2, y2));

                  pen.setWidthF(lw);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(x3, y1, x3, y2));

                  if (score()->styleB(ST_repeatBarTips)) {
                        qreal x = x2;
                        symbols[score()->symIdx()][brackettipsRightUp].draw(painter, mags, QPointF(x, y1));
                        symbols[score()->symIdx()][brackettipsRightDown].draw(painter, mags, QPointF(x, y2));
                        symbols[score()->symIdx()][brackettipsLeftUp].draw(painter, mags, QPointF(x, y1));
                        symbols[score()->symIdx()][brackettipsLeftDown].draw(painter, mags, QPointF(x, y2));
                        }
                  }
                  break;
            }
      }
示例#12
0
QPixmap* ImageBackground::NewImage(Qt::AlignmentFlag alignment, int width, int height)
{
	QPixmap* image = new QPixmap(width, height);
	image->fill(Qt::transparent);

	QPainter painter(image);
	QColor color = colorBackground;
	if(transparency == true) color.setAlpha(alpha);

	switch (alignment){
	case Qt::AlignTop:{
			QRect rect(0, 0 , width, height - offset);

			// Fondo de la franja.
			painter.fillRect(rect, QBrush(color));

			// Linea blanca.
			painter.fillRect(rect.left(), rect.bottom() - 4, rect.width(), 4, QBrush(colorLine));

			// Puntitos.
			QLinearGradient gradient(rect.topLeft(), rect.topRight());
			gradient.setColorAt(0.5, QColor(colorDots.red(), colorDots.green(), colorDots.blue(), 0));
			gradient.setColorAt(1.0, QColor(colorDots.red(), colorDots.green(), colorDots.blue(), 100));
			painter.fillPath(drawDots(rect), gradient);

			// Logotipo ubuntu.
			painter.drawPixmap(15, rect.top() + 10, pixmapLogoUbuntu);

			// Logotipo círculo.
			painter.drawPixmap(width - 20 - pixmapLogoCircle.width(), rect.bottom() - pixmapLogoCircle.height() + offset, pixmapLogoCircle);
			break;
		}
	case Qt::AlignLeft:{
			QRect rect(0, 0 , width - offset, height);

			// Fondo de la franja.
			painter.fillRect(rect, QBrush(color));

			// Linea blanca.
			painter.fillRect(rect.right() - 4, rect.top(), 4, rect.height(), QBrush(colorLine));

			// Puntitos.
			QLinearGradient gradient(rect.topLeft(), rect.bottomLeft());
			gradient.setColorAt(0.5, QColor(colorDots.red(), colorDots.green(), colorDots.blue(), 0));
			gradient.setColorAt(1.0, QColor(colorDots.red(), colorDots.green(), colorDots.blue(), 100));
			painter.fillPath(drawDots(rect), gradient);

			// Logotipo ubuntu.
			painter.drawPixmap(15, rect.top() + 10, pixmapLogoUbuntu);

			// Logotipo círculo.
			painter.drawPixmap(rect.right() - pixmapLogoCircle.width() + offset, rect.bottom() - 20 - pixmapLogoCircle.height(), pixmapLogoCircle);
			break;
		}
	case Qt::AlignRight:{
			QRect rect(offset, 0 , width - offset, height);

			// Fondo de la franja.
			painter.fillRect(rect, QBrush(color));

			// Linea blanca.
			painter.fillRect(rect.left(), rect.top(), 4, rect.height(), QBrush(colorLine));

			// Puntitos.
			QLinearGradient gradient(rect.topRight(), rect.bottomRight());
			gradient.setColorAt(0.5, QColor(colorDots.red(), colorDots.green(), colorDots.blue(), 0));
			gradient.setColorAt(1.0, QColor(colorDots.red(), colorDots.green(), colorDots.blue(), 100));
			painter.fillPath(drawDots(rect), gradient);

			// Logotipo ubuntu.
			painter.drawPixmap(15 + offset, rect.top() + 10, pixmapLogoUbuntu);

			// Logotipo círculo.
			painter.drawPixmap(rect.left() - offset, rect.bottom() - 20 - pixmapLogoCircle.height(), pixmapLogoCircle);
			break;
		}
	default:{ // Qt::AlignBottom
			QRect rect(0, offset, width, height - offset);

			// Fondo de la franja.
			painter.fillRect(rect, QBrush(color));

			// Linea blanca.
			painter.fillRect(rect.left(), rect.top(), rect.width(), 4, QBrush(colorLine));

			// Puntitos.
			QLinearGradient gradient(rect.bottomLeft(), rect.bottomRight());
			gradient.setColorAt(0.5, QColor(colorDots.red(), colorDots.green(), colorDots.blue(), 0));
			gradient.setColorAt(1.0, QColor(colorDots.red(), colorDots.green(), colorDots.blue(), 100));
			painter.fillPath(drawDots(rect), gradient);

			// Logotipo ubuntu.
			painter.drawPixmap(15, 10 + offset, pixmapLogoUbuntu);

			// Logotipo círculo.
			painter.drawPixmap(rect.width() - 20 - pixmapLogoCircle.width(), 0, pixmapLogoCircle);
			break;
		}
	}

	// Creamos la ruta.
	QDir dir;
	dir.mkpath(QDir::homePath() + "/.ConkyWizardTheme/pix/");

	// Guardamos la imagen.
	image->save(QDir::homePath() + "/.ConkyWizardTheme/pix/background.png", "PNG");
	return image;
}
示例#13
0
void BarLine::draw(QPainter* painter) const
      {
      // get line length and do nothing if 0 (or near enough)
      qreal y1, y2;
      getY(&y1, &y2);
      if (y2-y1 < 0.1)
            return;

      qreal _spatium = score()->spatium();
      qreal lw = score()->styleS(StyleIdx::barWidth).val() * _spatium;

      QPen pen(curColor(), lw, Qt::SolidLine, Qt::FlatCap);
      painter->setPen(pen);

      switch(barLineType()) {
            case BarLineType::BROKEN:
                  pen.setStyle(Qt::DashLine);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(lw * .5, y1, lw * .5, y2));
                  break;

            case BarLineType::DOTTED:
                  pen.setStyle(Qt::DotLine);
                  painter->setPen(pen);

            case BarLineType::NORMAL:
                  painter->drawLine(QLineF(lw * .5, y1, lw * .5, y2));
                  break;

            case BarLineType::END:
                  {
                  qreal lw2 = score()->styleS(StyleIdx::endBarWidth).val() * _spatium;
                  qreal d   = score()->styleS(StyleIdx::endBarDistance).val() * _spatium;

                  painter->drawLine(QLineF(lw * .5, y1, lw * .5, y2));
                  pen.setWidthF(lw2);
                  painter->setPen(pen);
                  qreal x = d + lw2 * .5 + lw;
                  painter->drawLine(QLineF(x, y1, x, y2));
                  }
                  break;

            case BarLineType::DOUBLE:
                  {
                  lw      = point(score()->styleS(StyleIdx::doubleBarWidth));
                  qreal d = point(score()->styleS(StyleIdx::doubleBarDistance));

                  pen.setWidthF(lw);
                  painter->setPen(pen);
                  qreal x = lw * .5;
                  painter->drawLine(QLineF(x, y1, x, y2));
                  x += d + lw;
                  painter->drawLine(QLineF(x, y1, x, y2));
                  }
                  break;

            case BarLineType::START_REPEAT:
                  {
                  qreal lw2 = point(score()->styleS(StyleIdx::endBarWidth));
                  qreal d1  = point(score()->styleS(StyleIdx::endBarDistance));

                  qreal x2   =  lw2 * .5;                               // thick line (lw2)
                  qreal x1   =  lw2 + d1 + lw * .5;                     // thin line (lw)
                  qreal x0   =  lw2 + d1 + lw + d1;                     // dot position

                  drawDots(painter, x0);

                  painter->drawLine(QLineF(x1, y1, x1, y2));

                  pen.setWidthF(lw2);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(x2, y1, x2, y2));

                  if (score()->styleB(StyleIdx::repeatBarTips)) {
                        drawSymbol(SymId::bracketTop, painter, QPointF(0.0, y1));
                        drawSymbol(SymId::bracketBottom, painter, QPointF(0.0, y2));
                        }
                  }
                  break;

            case BarLineType::END_REPEAT:
                  {
                  qreal lw2  = point(score()->styleS(StyleIdx::endBarWidth));
                  qreal d1   = point(score()->styleS(StyleIdx::endBarDistance));
                  qreal dotw = symWidth(SymId::repeatDot);
                  qreal x1   =  dotw + d1 + lw * .5;
                  qreal x2   =  dotw + d1 + lw + d1 + lw2 * .5;

                  drawDots(painter, 0.0);
                  painter->drawLine(QLineF(x1, y1, x1, y2));
                  pen.setWidthF(lw2);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(x2, y1, x2, y2));

                  if (score()->styleB(StyleIdx::repeatBarTips)) {
                        qreal x = x2 + lw2 * .5;
                        qreal w1 = symBbox(SymId::reversedBracketTop).width();
                        drawSymbol(SymId::reversedBracketTop, painter, QPointF(x - w1, y1));
                        drawSymbol(SymId::reversedBracketBottom, painter, QPointF(x - w1, y2));
                        }
                  }
                  break;

            case BarLineType::END_START_REPEAT:
                  {
                  qreal lw2  = point(score()->styleS(StyleIdx::endBarWidth));
                  qreal d1   = point(score()->styleS(StyleIdx::endBarDistance));
                  qreal dotw = symWidth(SymId::repeatDot);

                  qreal x1   =  dotw + d1 + lw * .5;                                // thin bar
                  qreal x2   =  dotw + d1 + lw + d1 + lw2 * .5;                     // thick bar
                  qreal x3   =  dotw + d1 + lw + d1 + lw2 + d1 + lw * .5;           // thin bar
                  qreal x4   =  dotw + d1 + lw + d1 + lw2 + d1 + lw + d1;           // dot position

                  drawDots(painter, .0);
                  drawDots(painter, x4);
                  painter->drawLine(QLineF(x1, y1, x1, y2));

                  pen.setWidthF(lw2);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(x2, y1, x2, y2));

                  pen.setWidthF(lw);
                  painter->setPen(pen);
                  painter->drawLine(QLineF(x3, y1, x3, y2));

                  if (score()->styleB(StyleIdx::repeatBarTips)) {
                        qreal x = x2;
                        qreal w1 = symBbox(SymId::reversedBracketTop).width();
                        drawSymbol(SymId::bracketTop, painter, QPointF(x, y1));
                        drawSymbol(SymId::bracketBottom, painter, QPointF(x, y2));
                        drawSymbol(SymId::reversedBracketTop, painter, QPointF(x - w1, y1));
                        drawSymbol(SymId::reversedBracketBottom, painter, QPointF(x - w1, y2));
                        }
                  }
                  break;
            }
      }
示例#14
0
void loop() {
    
    
    //Write time
    Serial.print(" --- Time \n");
    writetime();
    delay(30);
    
    
    //Draw dots
    drawDots();
    delay(30);
    
    
    //Check whether to go into settings mode
    if(digitalRead(button_settings_in) == HIGH){
        beep();
        Serial.print("In settings \n");
        settings();
    }
    delay(30);
    
    
    //Now check if we have alarm acivated!
    gettime();
    //Serial.print("Before: Alarm = ");
    //Serial.print(alarm);
    //Serial.print("\n");
    //delay(30);
    if( time == alarm_1_time && alarm){
        //alarm = 0;
        alarm_beep();  //Play the beep
        Serial.print("NO MORE BEEP \n");
        delay(500);
    }
    else if(time != alarm_1_time) alarm = 1;
    //Serial.print("After: Alarm = ");
    //Serial.print(alarm);
    //Serial.print("\n");
    //Serial.print("NO ALARM \n");
    //delay(60);
    
    //Check brightness
    if (digitalRead(button_set_mins_in) == HIGH){ //check minutes button
        brightness++; //increase brightness
        beep();
        if( brightness > 15 ) { brightness = 15; delay(beep_delay); beep(); delay(beep_delay); beep(); }
        matrix.setBrightness(brightness);
        Serial.print("Brightness level changed:");
        Serial.print(brightness);
        Serial.print("\n");
        delay(150);
    }
    if (digitalRead(button_set_hrs_in) == HIGH){ //check hours button
        brightness--; //decrease brightness
        beep();
        if( brightness < 0 ) { brightness = 0; delay(beep_delay); beep(); delay(beep_delay); beep(); }
        matrix.setBrightness(brightness);
        Serial.print("Brightness level changed:");
        Serial.print(brightness);
        Serial.print("\n");
        delay(150);
    }
    
}
示例#15
0
void alarm_beep(){
    int count0 = 0;
    do{
        count0++;
        int count = 0; //cut the beep at some point
        writetime();
        drawDots();
        delay(20);
        digitalWrite(led_RGB_1, HIGH);
        digitalWrite(led_RGB_2, HIGH);
        
        if( count0%3 == 0 ){
            print_sad(); //Print a sad smile
            delay(300);
        }
        
        //Serial.print("In alarm - beep \n");
        beep();
        delay(100);
        beep();
        delay(100);
        beep();
        delay(150);
        
        
        
        if (digitalRead(alarm_off_1) == HIGH){
            //Serial.print("One 1 end touched :) \n");
            digitalWrite(led_RGB_1, LOW);
            print_smile();
            delay(500);
            do{
                
                //Now beep less
                if(count%5 == 0) {
                    beep();
                }
                count++;
                
                writetime();
                drawDots();
                
                if (digitalRead(alarm_off_2) == HIGH){
                    //Alarm off
                    //Serial.print("Other 2 end touched, alarm = 0 \n");
                    digitalWrite(led_RGB_2, LOW);
                    alarm = 0;
                    break;
                }
                //Serial.print("In while loop 1! \n");
                delay(100);
            }
            while(digitalRead(alarm_wire) == LOW || alarm == 0);
            delay(100);
            //Serial.print("While loop exited, now exit alarm \n");
            
        }
        else if (digitalRead(alarm_off_2) == HIGH){
            //Serial.print("One 2 end touched :) \n");
            digitalWrite(led_RGB_2, LOW);
            print_smile();
            delay(500);
            do{
                
                //Now beep less
                if(count%5 == 0) {
                    beep();
                }
                count++;
                
                writetime();
                drawDots();
                
                if (digitalRead(alarm_off_1) == HIGH){
                    //Alarm off
                    //Serial.print("Other 1 end touched, alarm = 0 \n");
                    digitalWrite(led_RGB_1, LOW);
                    alarm = 0;
                    break;
                }
                Serial.print("In while loop 2! \n");
                delay(100);
            }
            while(digitalRead(alarm_wire) == LOW || alarm == 0);
            delay(100);
            //Serial.print("While loop exited, now exit alarm \n");
            //exit;
        }
        
        
        
    }
    while( alarm != 0 );
    print_smile(); //Show a smile
    delay(700);
    print_alarm_off();
    
    //Serial.print("I said!!!!! Exit alarm loop: Alarm = ");
    //Serial.print(alarm);
    //Serial.print("\n");
}