void ICircuitView::setBeginPoint(const QPoint& begin) { m_begin = begin; if (m_model == NULL) return; const QList<QString>& inputs = m_model->inputs(); const QList<QString>& outputs = m_model->outputs(); if (inputs.size() == 1) { m_inputs[inputs[0]] = polygon(beginPoint() + QPoint(-WIRE_LENGTH, CIRCUIT_HEIGHT / 2)); } else if (inputs.size() == 2) { m_inputs[inputs[0]] = polygon(beginPoint() + QPoint(-WIRE_LENGTH, CIRCUIT_HEIGHT / 4)); m_inputs[inputs[1]] = polygon(beginPoint() + QPoint(-WIRE_LENGTH, CIRCUIT_HEIGHT * 3 / 4)); } if (outputs.size() == 1) { m_outputs[outputs[0]] = polygon(beginPoint() + QPoint(CIRCUIT_WIDTH + WIRE_LENGTH, CIRCUIT_HEIGHT / 2)); } }
void MoveTool::mouseReleaseEvent(const QList<QGraphicsItem*> &itemList, QGraphicsSceneMouseEvent *event) { if (m_moveManipulator.isActive()) { if (m_movingItems.isEmpty()) return; QLineF moveVector(event->scenePos(), m_moveManipulator.beginPoint()); if (moveVector.length() < QApplication::startDragDistance()) { QPointF beginPoint(m_moveManipulator.beginPoint()); m_moveManipulator.end(beginPoint); // m_selectionIndicator.show(); m_resizeIndicator.show(); m_movingItems.clear(); view()->changeToSelectionTool(event); } else { m_moveManipulator.end(event->scenePos()); m_selectionIndicator.show(); m_resizeIndicator.show(); m_movingItems.clear(); } } AbstractFormEditorTool::mouseReleaseEvent(itemList, event); }
void graph2_1::paintEvent(QPaintEvent *) { /***********�����α߿���������**************/ QPainter *painter=new QPainter(this); painter->setRenderHint(QPainter::Antialiasing,true); painter->drawRect(10,10,380,230); QPoint beginPoint(50,200); QPoint xEndPoint(xEndX,xEndY); QPoint yEndPoint(yEndX,yEndY); painter->drawLine(beginPoint,xEndPoint); painter->drawLine(beginPoint,yEndPoint); //*****************����������ͷ*********/ int xOffset=13; brush.setColor(Qt::black); brush.setStyle(Qt::SolidPattern); painter->setBrush(brush); QPoint xarrowRightPoint(xEndX+xOffset,xEndY); QPoint xarrowTopPoint(xEndX,-xOffset*tan(PI/6)+xEndY); QPoint xarrowBotPoint(xEndX,xOffset*tan(PI/6)+xEndY); static const QPoint xarrowPoints[3] = { xarrowRightPoint,xarrowTopPoint,xarrowBotPoint, }; painter->drawPolygon(xarrowPoints,3); QPoint yarrowTopPoint(yEndX,yEndY-xOffset); QPoint yarrowRightPoint(xOffset*tan(PI/6)+yEndX,yEndY); QPoint yarrowLeftPoint(-xOffset*tan(PI/6)+yEndX,yEndY); static const QPoint yarrowPoints[3] = { yarrowTopPoint,yarrowLeftPoint,yarrowRightPoint, }; painter->drawPolygon(yarrowPoints,3); painter->setBrush(Qt::NoBrush); /************��ע������**********/ painter->drawText(xEndX,xEndY+20,tr("HZ")); //painter->rotate(270); painter->drawText(yEndY,yEndX+20,tr("dB")); //painter->rotate(90); /*************************/ QVector<qreal> dashes; qreal space = 3; dashes << 5 << space << 5 << space; pen.setDashPattern(dashes); pen.setWidth(2); pen.setColor(Qt::blue); painter->setPen(pen); QPoint point5(90,200); QPoint point6(100,155); QPoint point7(250,110); QPoint point8(300,80); painter->drawPath(drawBezierCurve(point5,point6)); painter->drawPath(drawBezierCurve(point6,point7)); painter->drawPath(drawBezierCurve(point7,point8)); }
void ICircuitView::drawImpl(const QVector<int>& inputPadding, const QVector<int>& outputPadding, const QString& text) { const QPoint& begin = beginPoint(); const QPoint second{begin.x() + CIRCUIT_WIDTH, begin.y()}; const QPoint third{begin.x() + CIRCUIT_WIDTH, begin.y() + CIRCUIT_HEIGHT}; const QPoint fourth{begin.x(), begin.y() + CIRCUIT_HEIGHT}; foreach (const int padding, outputPadding) DrawingHelper::drawOutputWire({second.x(), second.y() + padding}); foreach(const int padding, inputPadding) DrawingHelper::drawInputWire({begin.x(), begin.y() + padding}); DrawingHelper::drawPolygon(QPolygon({begin, second, third, fourth}), Qt::white); DrawingHelper::drawPolygonBorder(QPolygon({begin, second, third, fourth}), Qt::black); if (m_isSelected) drawBorder(); if (m_model != NULL) DrawingHelper::drawText({m_begin.x(), m_begin.y() + CIRCUIT_HEIGHT + 10}, "E" + QString::number(m_model->id()), m_editor); DrawingHelper::drawText(QPoint(begin.x() + CIRCUIT_WIDTH / 5, begin.y() + CIRCUIT_HEIGHT / 2), text, editor()); }
Ship::Ship(string inputFile) { fstream inputStream; inputStream.open(inputFile.c_str()); int numberOfComponent; inputStream >> numberOfComponent; while(numberOfComponent) { char typeOfComponent; inputStream >> typeOfComponent; if (typeOfComponent == '/') { string dummy; getline(inputStream,dummy); continue; } else if (typeOfComponent == 'L') { int x1,y1,x2,y2,red,green,blue; inputStream>>x1>>y1>>x2>>y2>>red>>green>>blue; Point beginPoint(x1,y1),endPoint(x2,y2); Color color(red,green,blue,0); mLines.push_back(Line(beginPoint,endPoint,color)); } numberOfComponent--; }
void ellipse::paintEvent(QPaintEvent *) { QPainter painter(this); QPen pen; painter.translate(600, 300); int xEndX=590; int xEndY=0; int yEndX=0; int yEndY=-280; int xOffset=13; int yOffset=13; QPoint beginPoint(-590,0); QPoint xEndPoint(xEndX,xEndY); QPoint yEndPoint(yEndX,yEndY); painter.drawLine(beginPoint,xEndPoint); QPoint beginPoint2(0,290); painter.drawLine(beginPoint2,yEndPoint); for(int i=-550;i<600;i+=50) { beginPoint.setX(i); beginPoint.setY(0); beginPoint2.setX(i); beginPoint2.setY(-5); painter.drawLine(beginPoint2,beginPoint); char x[10]; sprintf(x,"%d",i); painter.drawText(i+1,15,x); } for(int i=-250;i<300;i+=50) { beginPoint.setX(0); beginPoint.setY(0-i); beginPoint2.setX(5); beginPoint2.setY(0-i); painter.drawLine(beginPoint2,beginPoint); char x[10]; sprintf(x,"%d",0-i); if(i!=0) { painter.drawText(-25,i,x);} } QPoint xArrowsLeftPoint(xEndX,xEndY); QPoint xArrowsTopPoint(xEndX-xOffset,-xOffset*tan(PI/6)); QPoint xArrowsBotPoint(xEndX-xOffset,xOffset*tan(PI/6)); static const QPoint xArrowsPoints[3] = { xArrowsLeftPoint,xArrowsTopPoint,xArrowsBotPoint, }; painter.setBrush(QBrush(Qt::black,Qt::SolidPattern)); painter.drawPolygon(xArrowsPoints,3); painter.drawText(xEndX-20,xEndY-20,tr("X轴")); QPoint yArrowsBotPoint(yEndX,yEndY-yOffset); QPoint yArrowsRightPoint(yOffset*tan(PI/6),yEndY); QPoint yArrowsLeftPoint(-yOffset*tan(PI/6),yEndY); static const QPoint yArrowsPoints[3] = { yArrowsBotPoint,yArrowsRightPoint,yArrowsLeftPoint, }; painter.setBrush(QBrush(Qt::black,Qt::SolidPattern)); painter.drawPolygon(yArrowsPoints,3); painter.drawText(yEndX+20,yEndY+20,tr("Y轴")); painter.setPen(Qt::blue); paintEvent2(0,shortr); painter.drawPoints(pointf1, 4); int ry=shortr; int rx=longr; long p0 = ry*ry-rx*rx*ry+0.25*rx*rx; long x0 =0,y0 = ry; while(ry*ry*x0<rx*rx*y0) { x0++; if(p0<0) { p0 = p0 +2*ry*ry*x0+ry*ry; } else { y0--; p0 = p0+2*ry*ry*x0-2*rx*rx*y0+ry*ry; } paintEvent2(x0,y0); painter.drawPoints(pointf1, 4); } p0 = ry*ry*(x0+0.5)*(x0+0.5)+rx*rx*(y0-1)*(y0-1)-rx*rx*ry*ry; while(y0>0) { y0--; if(p0>0) { p0 = p0 -2*rx*rx*y0+rx*rx; } else { x0++; p0 = p0 +2*ry*ry*x0-2*rx*rx*y0+rx*rx; } paintEvent2(x0,y0); painter.drawPoints(pointf1, 4); } }
GameData::GameData(Sound &sound, World& world, QObject* parent) : QObject(parent), sound(sound), last_transition_time(world.getTime()), last_scoring_team(NULL), last_scoring_player(NULL), last_touching_player(NULL), state(INIT) { buildCourt(world); beginPoint(world); }
void Nand2View::draw() { drawImpl({CIRCUIT_HEIGHT / 4, CIRCUIT_HEIGHT * 3 / 4}, {CIRCUIT_HEIGHT / 2}, "&"); DrawingHelper::drawCircle(beginPoint() + QPoint(CIRCUIT_WIDTH, CIRCUIT_HEIGHT / 2), 4, Qt::black); }