Ejemplo n.º 1
0
void repere::Teste()
{

    QPolygonF box1;
    box1 << QPointF(50,50)<< QPointF(80,50)<< QPointF(80,60)<< QPointF(70,60)<< QPointF(70,70)<< QPointF(50,70);
    QGraphicsPolygonItem *P;
    P=Scene->addPolygon(box1,QPen(Qt::darkGray),QBrush(Qt::darkGray));


    QPolygonF box2;
    box2 << QPointF(20,20)<< QPointF(51,20)<< QPointF(51,51)<< QPointF(20,51);
    QGraphicsPolygonItem *P2;
    P2=Scene->addPolygon(box2,QPen(Qt::red),QBrush(Qt::red));

    //P->collidingItems()
    qDebug()<< P->collidesWithItem(P2);

    QPainterPath s,s2,s3;
    s= P->shape();
    s2=P2->shape();

    //Scene->addPath(s,QPen(Qt::magenta),QBrush(Qt::yellow));

    Scene->addText("o")->setPos(85,85);

    QGraphicsLineItem *l;
    l=Scene->addLine(90,65,70,65,QPen(Qt::red));
    s2=l->shape();

    qDebug()<< "intersects: "<<s.intersects(s2);
    //qDebug()<< "intersected: "<<s.intersected(s2);


    s3=s.intersected(s2);



    Scene->addLine(50,65,50,65,QPen(Qt::green));
    Scene->addLine(70,65,70,65,QPen(Qt::green));

    qDebug()<< "intersected2:"<<P->shape().intersected(l->shape()).elementAt(1)<<s3.elementAt(1);

    qDebug()<< "intersected a:"<<P->shape().intersected(l->shape());
    qDebug()<< "intersected b:"<<l->shape().intersected(P->shape());



    vector<QGraphicsPolygonItem*> obstaculos;
    obstaculos.push_back(P);
    obstaculos.push_back(P2);


 /* QImage *image = new QImage(QSize(400,400),QImage::Format_ARGB32);
    image->fill(QColor(Qt::white).rgb());
    QPainter *pngPainter = new QPainter(image);
    pngPainter->setRenderHint(QPainter::Antialiasing);
    Scene->render(pngPainter);
    pngPainter->end();
    image->setText();
    //image->save(nom+".png","PNG",100);
    */
}