コード例 #1
0
ファイル: main.cpp プロジェクト: lionxroar/Final-BezierCurve
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);
	}
}
コード例 #2
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 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;
    }
}
コード例 #4
0
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);
}
コード例 #7
0
/*!
  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
ファイル: FunctionCurve.cpp プロジェクト: rrnntt/SmallProject
/**
 * 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
ファイル: qwt_plot_curve.cpp プロジェクト: kuzavas/qtiplot
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
ファイル: barline.cpp プロジェクト: shadowphiar/MuseScore
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
ファイル: barline.cpp プロジェクト: Soerboe/MuseScore
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
ファイル: buzzwire.c プロジェクト: plantpark/buzz-wire
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
ファイル: buzzwire.c プロジェクト: plantpark/buzz-wire
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");
}