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 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); } }