void Path::addEllipse(const FloatPoint& p, float radiusX, float radiusY, float rotation, float startAngle, float endAngle, bool anticlockwise) { ASSERT(ellipseIsRenderable(startAngle, endAngle)); ASSERT(startAngle >= 0 && startAngle < twoPiFloat); ASSERT((anticlockwise && (startAngle - endAngle) >= 0) || (!anticlockwise && (endAngle - startAngle) >= 0)); if (!rotation) { addEllipse(FloatPoint(p.x(), p.y()), radiusX, radiusY, startAngle, endAngle, anticlockwise); return; } // Add an arc after the relevant transform. AffineTransform ellipseTransform = AffineTransform::translation(p.x(), p.y()).rotateRadians(rotation); ASSERT(ellipseTransform.isInvertible()); AffineTransform inverseEllipseTransform = ellipseTransform.inverse(); transform(inverseEllipseTransform); addEllipse(FloatPoint::zero(), radiusX, radiusY, startAngle, endAngle, anticlockwise); transform(ellipseTransform); }
void RSceneDevice::Circle(double x, double y, double r, R_GE_gcontext *gc) { if (debug) Rprintf("RSceneDevice::Circle\n"); QPen pen(Qt::NoPen); QBrush brush; QRectF rect(x - r, y - r, 2 * r, 2 * r); int col = gc->col; int fill = gc->fill; // double gamma = gc->gamma; double lwd = gc->lwd; int lty = gc->lty; // FIXME: should be easy to add if (col != NA_INTEGER && !R_TRANSPARENT(col)) { pen.setStyle(lty2style(lty)); pen.setColor(r2qColor(col)); pen.setWidthF(lwd); } if (fill != NA_INTEGER && !R_TRANSPARENT(fill)) { brush.setColor(r2qColor(fill)); brush.setStyle(Qt::SolidPattern); } // FIXME: We can either create items separately and add them in // addClippedItem() as here, or do addClippedItem(addEllipse(...)) // which removes and adds (as in the other callbacks currently). // The first is probably better, so should fix the others. addClippedItem(addEllipse(rect, pen, brush)); // QGraphicsEllipseItem *item = new QGraphicsEllipseItem(rect); // item->setPen(pen); // item->setBrush(brush); // addClippedItem(item); return; }
void MainScene::populateScene() { for (int i = 0; i < 500; i+=100) { addEllipse(i, 70, 50,50); } }
void RayDisplayScene::updateCollisions() { QPointF collisionPoint; for (int i = 0; i < mCollisions.size(); i++) { delete mCollisions.at(i); } mCollisions.resize(0); for (int i = 0; i < mCollidedRays.size(); i++) { const int jCount = mCollidedRays.at(i).size(); for (int k = 0; k < mCollidedRays.size(); k++) { if (i == k) { continue; } const int lCount = mCollidedRays.at(k).size(); for (int j = 0; j < jCount; j++) { for (int l = 0; l < lCount; l++) { if (mCollidedRays.at(i).at(j).intersect(mCollidedRays.at(k).at(l), &collisionPoint) == QLineF::BoundedIntersection) { QGraphicsEllipseItem *collisionGraphicsItem; collisionGraphicsItem = addEllipse(QRectF(collisionPoint, QSizeF(2, 2)), QPen(QBrush(Qt::magenta), 2)); mCollisions << collisionGraphicsItem; } } } } } }
void NoDank::keys(int key) { switch (key) { case '1': addEllipse(); break; case '2': changeAddMirror(); break; case '3': for(int i=0; i<ellipses.size(); i++) { ellipses[i]->LFO_alpha = !ellipses[i]->LFO_alpha; } break; case '4': oneFrame(); break; case '5': oneFrameLarger(); break; case '6': halfTime(); break; default: break; } }
ActionEffectEditor::ActionEffectEditor(QWidget *parent) : MyTabSubWidgetBase(parent) { //m_pHbox = new QHBoxLayout; m_pView = new MyGraphicsView(this); m_pScene = new MyGraphicsScene; addMultiPolygon(); addEllipse(); addDragWidget(); addBezierCurve(); m_pView->setScene(m_pScene); //m_pHbox->addWidget(m_pView); //this->setLayout(m_pHbox); //this->resize(600, 400); setCentralWidget(m_pView); g_pQtGameEditorSys->setGraphicsScenePtr(m_pScene); g_pQtGameEditorSys->setGraphicsViewPtr(m_pView); m_pNodeDockWidget = new NodeDockWidget(this); this->addDockWidget(Qt::RightDockWidgetArea, m_pNodeDockWidget); this->setAcceptDrops(true); // ½ÓÊÕÍ϶¯²Ù×÷ }
void Path::addArc(const FloatPoint& p, float radius, float startAngle, float endAngle, bool anticlockwise) { addEllipse(p, radius, radius, startAngle, endAngle, anticlockwise); }
void MainWindow::fillView() { for (int i = 0; i < 10; i++) { addRectangle(); addEllipse(); addLine(); addText(); } canvas->update(); }
void LvlScene::setCircleDrawer() { if(cursor) {delete cursor; cursor=NULL;} QPen pen; QBrush brush; switch(placingItem) { case PLC_Block: case PLC_BGO: default: pen = QPen(Qt::gray, 2); brush = QBrush(Qt::darkGray); break; } //Align width and height to fit into item aligning long addW=LvlPlacingItems::gridSz-LvlPlacingItems::itemW%LvlPlacingItems::gridSz; long addH=LvlPlacingItems::gridSz-LvlPlacingItems::itemH%LvlPlacingItems::gridSz; if(addW==LvlPlacingItems::gridSz) addW=0; if(addH==LvlPlacingItems::gridSz) addH=0; LvlPlacingItems::itemW = LvlPlacingItems::itemW+addW; LvlPlacingItems::itemH = LvlPlacingItems::itemH+addH; if((placingItem != PLC_Water) && (!LvlPlacingItems::sizableBlock)) { QPixmap oneCell(LvlPlacingItems::itemW, LvlPlacingItems::itemH); oneCell.fill(QColor(0xFF, 0xFF, 0x00, 128)); QPainter p(&oneCell); p.setBrush(Qt::NoBrush); p.setPen(QPen(Qt::yellow, 2, Qt::SolidLine)); p.drawRect(0,0, LvlPlacingItems::itemW, LvlPlacingItems::itemH); brush.setTexture(oneCell); } cursor = addEllipse(0,0,1,1, pen, brush); //set data flags foreach(dataFlag flag, LvlPlacingItems::flags) cursor->setData(flag.first, flag.second); cursor->setData(ITEM_TYPE, "Circle"); cursor->setData(ITEM_IS_CURSOR, "CURSOR"); cursor->setZValue(7000); cursor->setOpacity( 0.5 ); cursor->setVisible(false); cursor->setEnabled(true); SwitchEditingMode(MODE_DrawCircle); DrawMode=true; }
QGraphicsItem* ObjectsScene::createItem(BaseType radius) { const QSizeF size(2 * radius, 2 * radius); const QRectF rect(QPointF(-radius, -radius), size); QPen pen(Qt::red); pen.setWidthF(10e6); QGraphicsItem* item = addEllipse(rect, pen, QBrush(Qt::SolidPattern)); return item; }
void CSharedPainterScene::drawLineStart( const QPointF &pt, const QColor &clr, int width ) { double x = pt.x() - (double(width) / 2.f); double y = pt.y() - (double(width) / 2.f); QRectF rect( x, y, width, width); QGraphicsEllipseItem *item = addEllipse( rect, QPen(clr, 1), QBrush(clr) ); item->setZValue( currentZValue() ); tempLineItemList_.push_back( item ); }
void paintScene::mousePressEvent(QGraphicsSceneMouseEvent *event) { setBrushType(myBrush->getToolStatus()); // При нажатии кнопки мыши отрисовываем эллипс addEllipse(event->scenePos().x() - 5, event->scenePos().y() - 5, 5*myBrush->getWidth(), 5*myBrush->getWidth(), QPen(Qt::NoPen), brushType->color()); // Сохраняем координаты точки нажатия previousPoint = event->scenePos(); }
void NoDank::MidiFunc(ofxMidiMessage msg) { if(msg.status == MIDI_CONTROL_CHANGE) { if(msg.control == 1) visualizer->setAlpha(ofMap(msg.value, 0, 127, 8, 255)); } if(msg.status == 144) { switch (msg.pitch) { case 36: addEllipse(); break; case 37: break; case 38: break; case 39: break; case 40: LFO_alpha(); break; case 41: oneFrame(); break; case 42: oneFrameLarger(); break; case 44: changeAddMirror(); break; case 48: deleteCircles(); break; case 50: halfTime(); break; default: break; } } }
void mogs_qt_video_scene::DrawPoint( CvPoint in, QString name) { QPen outlinePen(Qt::red); outlinePen.setWidth(2); addEllipse(in.x, in.y, 5, 5,outlinePen); if (name != "") { QGraphicsTextItem * io = new QGraphicsTextItem; io->setDefaultTextColor(Qt::red); io->setPos(in.x -20,in.y); io->setPlainText(name); addItem(io); } }
void Scene::drawItem(QPointF const &destination) { if (itemType == "QGraphicsRectItem") { QGraphicsRectItem* rect = addRect(QRectF(destination.x(), destination.y(), 100, 70) , pen, brush); rect->setFlag(QGraphicsItem::ItemIsMovable, true); rect->setFlag(QGraphicsItem::ItemIsSelectable, true); } else if (itemType == "QGraphicsEllipseItem") { QGraphicsEllipseItem* ellipse = addEllipse(QRectF(destination.x(), destination.y(), 100, 70) , pen, brush); ellipse->setFlag(QGraphicsItem::ItemIsMovable, true); ellipse->setFlag(QGraphicsItem::ItemIsSelectable, true); } }
// draws the cv points void CCurveScene::drawPoints() { while (_circleObjects.size()) { delete _circleObjects[0]; _circleObjects.erase(_circleObjects.begin()); } const int numCV = _cvs.size(); for (int i = 0; i < numCV; i++) { const T_CURVE::CV& pt = _cvs[i]; QPen pen; if (i == _selectedItem) { pen = QPen(QColor(255,170,0),1.0); } else { pen = QPen(Qt::black,1.0); } _circleObjects.push_back(addEllipse(pt._pos*_width-4, _height+3, 8, 8, pen, QBrush(QColor(int(255 * pt._val[0] +0.5), int(255 * pt._val[1] + 0.5), int(255 * pt._val[2] + 0.5))))); QGraphicsEllipseItem *circle = _circleObjects.back(); circle->setFlag(QGraphicsItem::ItemIsMovable, true); circle->setZValue(2); } }
void Scene::addTrafficLights() { std::vector<Intersection *> intersections = world->getIntersections(); for (const auto &intersection : intersections) { int width = (int) intersection->getRectangle().getWidth(); for (int i = 0; i < 4; i++) { std::string s = intersection->getTrafficLight()->getState(i); QColor color = Qt::red; for (int j = 0; j < 3; j++) { if (s[2 - j] == '1') { color = Qt::green; } else { color = Qt::red; } trafficLightsItems.push_back(addEllipse(QRect(intersection->getRectangle().getLeft() + Scene::OFFSET_X[i][j] * width, intersection->getRectangle().getBottom() + Scene::OFFSET_Y[i][j] * width, width * 0.05, width * 0.05), QPen(color), QBrush(color))); } } } }
void RayDisplayScene::initLeds() { QList<int> sizes; //sizes << 64 << 40 << 64 << 40; sizes << 48 << 32 << 48 << 32; Q_ASSERT(4 == sizes.size()); QVector<QVector<QPointF>> sidedReceiversPos; QVector<QVector<QPointF>> sidedSendersPos; sidedReceiversPos.resize(sizes.size()); mSidedReceivers.resize(sizes.size()); sidedSendersPos.resize(sizes.size()); int allReceivers = 0; for (int i = 0; i < sizes.size(); i++) { Q_ASSERT(sizes.at(i) % 8 == 0); sidedReceiversPos[i].reserve(sizes.at(i)); mSidedReceivers[i].reserve(sizes.at(i)); sidedSendersPos[i].reserve(sizes.at(i) / 8); allReceivers += sizes.at(i) / 8; } mReceivers.reserve(allReceivers * 8); mSenders.reserve(allReceivers); // top left-to-right for (int i = 0; i < sizes.at(0); i++) { QGraphicsEllipseItem *r; const int x = i * 10; const int y = 0; r = addEllipse(0, 0, 5, 5, QPen(QBrush(Qt::black), 2)); const int sideId = 0; const QPointF p(x, y); sidedReceiversPos[sideId] << p; r->setPos(p); mReceivers.append(r); mSidedReceivers[sideId] << r; } // right top-to-bottom for (int i = 0; i < sizes.at(1); i++) { QGraphicsEllipseItem *r; const int x = sizes.at(0) * 10; const int y = i * 10 - (0 - 5); r = addEllipse(0, 0, 5, 5, QPen(QBrush(Qt::black), 2)); const int sideId = 1; const QPointF p(x, y); sidedReceiversPos[sideId] << p; r->setPos(p); mReceivers.append(r); mSidedReceivers[sideId] << r; } // bottom right-to-left for (int i = 0; i < sizes.at(2); i++) { QGraphicsEllipseItem *r; const int x = i * -10 + sizes.at(0) * 10 - 10; const int y = sizes.at(1) * 10; r = addEllipse(0, 0, 5, 5, QPen(QBrush(Qt::black), 2)); const int sideId = 2; const QPointF p(x, y); sidedReceiversPos[sideId] << p; r->setPos(p); mReceivers.append(r); mSidedReceivers[sideId] << r; } // left bottom-to-top for (int i = 0; i < sizes.at(3); i++) { QGraphicsEllipseItem *r; const int x = -5; const int y = i * -10 + ((sizes.at(1)) * 10 - 5); r = addEllipse(0, 0, 5, 5, QPen(QBrush(Qt::black), 2)); const int sideId = 3; const QPointF p(x, y); sidedReceiversPos[sideId] << p; r->setPos(p); mReceivers.append(r); mSidedReceivers[sideId] << r; } // top left-to-right for (int i = 0; i < (sizes.at(0) / 8); i++) { QGraphicsEllipseItem *r; const int x = i * 80 + 35; const int y = 0; r = addEllipse(0, 0, 5, 5, QPen(QBrush(Qt::red), 2)); const int sideId = 0; const QPointF p(x, y); sidedSendersPos[sideId] << p; r->setPos(p); mSenders.append(Sender{r, 270, sideId}); } // right top-to-bottom for (int i = 0; i < (sizes.at(1) / 8); i++) { QGraphicsEllipseItem *r; const int x = sizes.at(0) * 10; const int y = i * 80 - (0 - 40); r = addEllipse(0, 0, 5, 5, QPen(QBrush(Qt::red), 2)); const int sideId = 1; const QPointF p(x, y); sidedSendersPos[sideId] << p; r->setPos(p); mSenders.append(Sender{r, 180, sideId}); } // bottom right-to-left for (int i = 0; i < (sizes.at(2) / 8); i++) { QGraphicsEllipseItem *r; const int x = i * -80 + (sizes.at(0) * 10 - 40 - 5); const int y = sizes.at(1) * 10; r = addEllipse(0, 0, 5, 5, QPen(QBrush(Qt::red), 2)); const int sideId = 2; const QPointF p(x, y); sidedSendersPos[sideId] << p; r->setPos(p); mSenders.append(Sender{r, 90, sideId}); } // left bottom-to-top for (int i = 0; i < (sizes.at(3) / 8); i++) { QGraphicsEllipseItem *r; const int x = -5; const int y = i * -80 + ((sizes.at(1) * 10) - 40); r = addEllipse(0, 0, 5, 5, QPen(QBrush(Qt::red), 2)); const int sideId = 3; const QPointF p(x, y); sidedSendersPos[sideId] << p; r->setPos(p); mSenders.append(Sender{r, 0, sideId}); } // mTI = new CvTracker(sidedReceiversPos, sidedSendersPos, this); emit publishSizes(sidedReceiversPos, sidedSendersPos); mCollidedRays.clear(); mCollidedRays.resize(mSenders.size()); mCollidedRaysGraphics.clear(); mCollidedRaysGraphics.resize(mSenders.size()); mTriangles.clear(); mTriangles.resize(mSenders.size()); /*QVector<cv::Point> points; points << cv::Point2i(0, 0); points << cv::Point2i(0, 100); points << cv::Point2i(100, 0); const cv::Point *pointsPtr[1] = {points.data()}; int size = points.size(); cv::Scalar color = cv::Scalar(127); cv::Mat m = mMats[0]; cv::line(m, cv::Point2i(0, 0), cv::Point2i(100, 100), color, 22); cv::imshow("plepleple", m); cv::fillConvexPoly(m, points.data(), size, color); qDebug() << "before"; T::sleep(4); qDebug() << "after"; cv::imshow("plepleple", m);*/ }
void WPainterPath::addEllipse(const WRectF& rect) { addEllipse(rect.x(), rect.y(), rect.width(), rect.height()); }
void MainScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { qDebug() << Q_FUNC_INFO; QPointF point = event->scenePos(); addEllipse(point.x(), point.y(),7,7); }
void MyScene::update() { this->clear(); QPen linePen; linePen.setWidth(2); QPen linePenOven; linePenOven.setColor(Qt::green); linePenOven.setWidth(3); // Draw oven temperature history if (dotListOven.count() > 2) { for (int i=1; i<dotListOven.count(); i++) { addLine(((QWidget *)this->parent())->width() * dotListOven.at(i).x() / maxTime, ((QWidget *)this->parent())->height() * dotListOven.at(i).y(), ((QWidget *)this->parent())->width() * dotListOven.at(i-1).x() / maxTime, ((QWidget *)this->parent())->height() * dotListOven.at(i-1).y(), linePenOven); } } if (dotList.count() >= 1) { // Reorder Dots from left to right qDebug() << "Printing unordered list"; for (int i=0; i<dotList.count(); i++) { qDebug() << "[" << dotList.at(i).x() << "," << dotList.at(i).y() << "]"; } for (int i=0; i<dotList.count(); i++) { for (int j=0; j<dotList.count()-1; j++) { if (dotList.at(j).x() > dotList.at(j+1).x()) { dotList.insert(j, dotList.takeAt(j+1)); } } } qDebug() << "Printing ordered list"; for (int i=0; i<dotList.count(); i++) { qDebug() << "[" << dotList.at(i).x() << "," << dotList.at(i).y() << "]"; } // Normalize dots "x" with the maximum one double maxX = dotList.last().x(); double scale = 1 / maxX; for (int i=0; i<dotList.count(); i++) { Dot d = dotList.takeFirst(); d.x(d.x() * scale); dotList.append(d); } qDebug() << "Printing normalized list"; for (int i=0; i<dotList.count(); i++) { qDebug() << "[" << dotList.at(i).x() << "," << dotList.at(i).y() << "]"; } QPen dotPen; dotPen.setWidth(2); // Draw dots for (int i=0; i<dotList.count(); i++) { if (dotList.at(i).selected()) dotPen.setColor(Qt::red); else dotPen.setColor(Qt::darkGreen); int posX = ((QWidget *)this->parent())->width() * dotList.at(i).x(); int posY = ((QWidget *)this->parent())->height() * dotList.at(i).y(); addEllipse(posX, posY, 10, 10, dotPen)->setPos(-5,-5); QString txt1, txt2; txt1.append(QString::number((int)(dotList.at(i).x() * (double)maxTime))); txt1.append(" s, "); txt2.append(QString::number((int)((1.0 - dotList.at(i).y()) * (double)maxTemp))); txt2.append(" 'C"); addSimpleText(txt1)->setPos(posX - 30, posY - 32); addSimpleText(txt2)->setPos(posX - 30, posY - 20); } // Draw lines addLine(((QWidget *)this->parent())->width() * 0, ((QWidget *)this->parent())->height() * 1, ((QWidget *)this->parent())->width() * dotList.at(0).x(), ((QWidget *)this->parent())->height() * dotList.at(0).y(), linePen); for (int i=1; i<dotList.count(); i++) { addLine(((QWidget *)this->parent())->width() * dotList.at(i).x(), ((QWidget *)this->parent())->height() * dotList.at(i).y(), ((QWidget *)this->parent())->width() * dotList.at(i-1).x(), ((QWidget *)this->parent())->height() * dotList.at(i-1).y(), linePen); } } else { double val1 = 1.0 - (double)currentTemperature / maxTemp; int y = ((QWidget *)this->parent())->height() * val1; addLine(0, y, ((QWidget *)this->parent())->width(), y, linePen); } }
void MainWindow::newEllipse() { QtCanvasItem *item = addEllipse(); canvas->update(); itemClicked(item); }
void Path::addEllipse (float x, float y, float w, float h) { addEllipse (Rectangle<float> (x, y, w, h)); }
void Path::addEllipse(Point const& center, const double rx, const double ry) noexcept { const Point delta(max(0., rx), max(0., ry)); addEllipse(Rectangle::withCorners(center - delta, center + delta)); }
void DRW_Hatch::parseCode(int code, dxfReader *reader){ switch (code) { case 2: name = reader->getString(); break; case 70: solid = reader->getInt32(); break; case 71: associative = reader->getInt32(); break; case 72: /*edge type*/ if (ispol){ //if is polyline is a as_bulge flag break; } else if (reader->getInt32() == 1){ //line addLine(); } else if (reader->getInt32() == 2){ //arc addArc(); } else if (reader->getInt32() == 3){ //elliptic arc addEllipse(); } else if (reader->getInt32() == 4){ //spline addSpline(); } break; case 10: if (pt) pt->basePoint.x = reader->getDouble(); else if (pline) { plvert = pline->addVertex(); plvert->x = reader->getDouble(); } break; case 20: if (pt) pt->basePoint.y = reader->getDouble(); else if (plvert) plvert ->y = reader->getDouble(); break; case 11: if (line) line->secPoint.x = reader->getDouble(); else if (ellipse) ellipse->secPoint.x = reader->getDouble(); break; case 21: if (line) line->secPoint.y = reader->getDouble(); else if (ellipse) ellipse->secPoint.y = reader->getDouble(); break; case 40: if (arc) arc->radious = reader->getDouble(); else if (ellipse) ellipse->ratio = reader->getDouble(); break; case 41: scale = reader->getDouble(); break; case 42: if (plvert) plvert ->bulge = reader->getDouble(); break; case 50: if (arc) arc->staangle = reader->getDouble(); else if (ellipse) ellipse->staparam = reader->getDouble(); break; case 51: if (arc) arc->endangle = reader->getDouble(); else if (ellipse) ellipse->endparam = reader->getDouble(); break; case 52: angle = reader->getDouble(); break; case 73: if (arc) arc->isccw = reader->getInt32(); else if (pline) pline->flags = reader->getInt32(); break; case 75: hstyle = reader->getInt32(); break; case 76: hpattern = reader->getInt32(); break; case 77: doubleflag = reader->getInt32(); break; case 78: deflines = reader->getInt32(); break; case 91: loopsnum = reader->getInt32(); looplist.reserve(loopsnum); break; case 92: loop = new DRW_HatchLoop(reader->getInt32()); looplist.push_back(loop); if (reader->getInt32() & 2) { ispol = true; clearEntities(); pline = new DRW_LWPolyline; loop->objlist.push_back(pline); } else ispol = false; break; case 93: if (pline) pline->vertexnum = reader->getInt32(); else loop->numedges = reader->getInt32();//aqui reserve break; case 98: //seed points ?? clearEntities(); break; default: DRW_Point::parseCode(code, reader); break; } }
void scene::prepareItem(QPoint startpoint) { selecting=true; start=startpoint; tool=currenttool; if(rect!=NULL) { removeItem(rect); rect=NULL; } if(ellipse!=NULL) { removeItem(ellipse); ellipse=NULL; } if(line!=NULL) { removeItem(line); line=NULL; } handles.clear(); QPen pen; pen.setWidth(0); pen.setColor(Qt::red); QBrush brush; switch (tool) { case 0: { rect=addRect(start.x(),start.y(),0,0,pen,brush); for(int i=0;i<4;i++) { QGraphicsRectItem* handle=new QGraphicsRectItem(start.x()-handlew/2,start.y()-handleh/2,handlew,handleh,rect); handle->setPen(pen); handles<<handle; } ellipse=addEllipse(rect->rect(),pen,brush); break; } case 1: { line=addLine(start.x(),start.y(),start.x(),start.y(),pen); for(int i=0;i<3;i++) { QGraphicsRectItem* handle=new QGraphicsRectItem(start.x()-handlew/2,start.y()-handleh/2,handlew,handleh,line); handle->setPen(pen); handles<<handle; } break; } case 2: { rect=addRect(start.x(),start.y(),0,0,pen,brush); for(int i=0;i<4;i++) { QGraphicsRectItem* handle=new QGraphicsRectItem(start.x()-handlew/2,start.y()-handleh/2,handlew,handleh,rect); handle->setPen(pen); handles<<handle; } break; } case 3: { rect=addRect(start.x()-handlew/2,start.y()-handleh/2,handlew,handleh,pen,brush); QGraphicsRectItem* handle=new QGraphicsRectItem(start.x()-handlew/2,start.y()-handleh/2,handlew,handleh,rect); handle->setPen(pen); QGraphicsLineItem* line=new QGraphicsLineItem(start.x()-10,start.y(),start.x()+10,start.y(),rect); line->setPen(pen); line=new QGraphicsLineItem(start.x(),start.y()-10,start.x(),start.y()+10,rect); line->setPen(pen); handles<<handle; } break; default: break; } }