📄 comprehensiveanalyze_form.ui.h
字号:
/****************************************************************************** ui.h extension file, included from the uic-generated form implementation.**** If you wish to add, delete or rename functions or slots use** Qt Designer which will update this file, preserving your code. Create an** init() function in place of a constructor, and a destroy() function in** place of a destructor.*****************************************************************************/float J[6];float Ifg, If0, Ifk, Kc, Xxd, Xdd, Ibc;int Xk[1000], Yk[1000];int Xd[1000], Yd[1000];int P;QString kzfilename, dlfilename;void ComprehensiveAnalyze_Form::init(){ fstream file; file.open("/root/FaultRecorder/ratedvalue.DAT"); file>>J[0]; file>>J[1]; file>>J[2]; file>>J[3]; file>>J[4]; file>>J[5]; file.close(); ComprehensiveAnalyze_iconView->clear(); (void) new QIconViewItem( ComprehensiveAnalyze_iconView, "", Draw_coordinate()); ComprehensiveAnalyze_iconView->setEnabled(FALSE); Kc_lineEdit->setEnabled(FALSE); Xxd_lineEdit->setEnabled(FALSE); Xd_lineEdit->setEnabled(FALSE); Ifg_lineEdit->setEnabled(FALSE); If0_lineEdit->setEnabled(FALSE); Ifk_lineEdit->setEnabled(FALSE);}QPixmap ComprehensiveAnalyze_Form::Draw_coordinate(){ int i,j,k; float k3=1.3; QString str0,str1,str2,strx[4],stry[6],strz[6]; ComprehensiveAnalyze_iconView->clear(); QPixmap pixmap( 420, 300 ); pixmap.fill( white ); QPainter painter; painter.begin( &pixmap ); painter.setPen( black ); painter.drawLine(40, 280, 405, 280); painter.drawLine(40, 280, 40, 15); painter.setPen( blue ); painter.drawText(20, 10, "U0", -1); for( j=1; j<=5; j++){ stry[j] = QString ("%0").arg(J[0]*k3*j/5, 0, 'f', 0); painter.drawText(10, 280-(280-30)*j/5, stry[j], -1); } painter.setPen( red ); painter.drawText(45, 10, "Ik", -1); for( k=1; k<=5; k++){ strz[k] = QString ("%0").arg(J[1]*k3*k/5, 0, 'f', 0); painter.drawText(10, 290-(280-30)*k/5, strz[k], -1); } painter.setPen( gray ); for( i=0; i<10; i++){ painter.drawLine(40, 30+i*25, 400, 30+i*25); } for( j=1; j<=10; j++){ painter.drawLine(40+j*36, 30, 40+j*36, 280); } painter.setPen( black ); painter.drawText(37, 295, "0", -1); painter.drawText(410, 285, "Ir", -1); str2 = QString ("%0").arg(J[2], 0, 'f', 0); painter.drawText(388, 295, str2, -1); for( i=1; i<=4; i++){ strx[i] = QString ("%0").arg(J[2]*i/5, 0, 'f', 0); painter.drawText(28+(400-40)*i/5, 295, strx[i], -1); } painter.setPen( magenta ); painter.drawLine(40, 280-(int)(250.0/k3), 400, 280-(int)(250.0/k3)); painter.end(); return pixmap;}void ComprehensiveAnalyze_Form::KZ_choose(){ int i; QString str1, str2; E3Datafile_Form*e3datafile_Form = new E3Datafile_Form(this, "试验数据选择", TRUE); e3datafile_Form->exec(); kzfilename = e3datafile_Form->returnFilename(); QDir::setCurrent("/root/FaultRecorder/experiment/FKZ/"); QFile file( kzfilename ); file.open( IO_ReadOnly ); QTextStream stream( &file ); for( i=0; i<1000; i++ ){ stream>>str1; stream>>str2; Xk[i] = atoi( str1 ); Yk[i] = atoi( str2 ); if ( Yk[i] == (int)J[0] ){ If0 = (float) Xk[i]; //求出If0; } } file.close(); (void) new QIconViewItem( ComprehensiveAnalyze_iconView, "", Draw_kz_curve()); KZdatechoose_pushButton->setEnabled(FALSE);}QPixmap ComprehensiveAnalyze_Form::Draw_kz_curve(){ int i, x, y, x0, y0; float k3 = 1.3; ComprehensiveAnalyze_iconView->clear(); QPixmap pixmap( 420, 300 ); QPainter painter; painter.begin( &pixmap ); painter.setPen( blue ); x0 = (int) (40 + Xk[0]*360/J[2]) ; y0 = (int) (280 - Yk[0]*250/k3/J[0]) ; for( i=1; i<1000; i++){ x = (int) (40 + Xk[i]*360/J[2]) ; y = (int) (280 - Yk[i]*250/k3/J[0]) ; painter.drawLine( x0, y0, x, y ); x0 = x; y0 = y; } painter.end(); return pixmap;}void ComprehensiveAnalyze_Form::DL_choose(){ int i; QString str1, str2; E4Datafile_Form*e4datafile_Form = new E4Datafile_Form(this, "试验数据选择", TRUE); e4datafile_Form->exec(); dlfilename = e4datafile_Form->returnFilename(); QDir::setCurrent("/root/FaultRecorder/experiment/FDL/"); QFile file( dlfilename ); file.open( IO_ReadOnly ); QTextStream stream( &file ); for( i=0; i<1000; i++ ){ stream>>str1; stream>>str2; Xd[i] = atoi( str1 ); Yd[i] = atoi( str2 ); if ( Yd[i] == (int)J[1] ){ Ifk = (float) Xd[i]; //求出Ifk; } } file.close(); (void) new QIconViewItem( ComprehensiveAnalyze_iconView, "", Draw_dl_curve()); DLdatechoose_pushButton->setEnabled(FALSE);}QPixmap ComprehensiveAnalyze_Form::Draw_dl_curve(){ int i, x, y, x0, y0; float k3 = 1.3; ComprehensiveAnalyze_iconView->clear(); QPixmap pixmap( 420, 300 ); QPainter painter; painter.begin( &pixmap ); painter.setPen( red ); x0 = (int) (40 + Xd[0]*360/J[2]) ; y0 = (int) (280 - Yd[0]*250/k3/J[1]) ; for( i=1; i<1000; i++){ x = (int) (40 + Xd[i]*360/J[2]) ; y = (int) (280 - Yd[i]*250/k3/J[1]) ; painter.drawLine( x0, y0, x, y ); x0 = x; y0 = y; } painter.end(); return pixmap;}//绘制切线,求出结果;void ComprehensiveAnalyze_Form::comprehensive_analyze(){ QString str1,str2,str3,str4,str5,str6; (void) new QIconViewItem( ComprehensiveAnalyze_iconView, "", Draw_qx_curve()); Kc = If0 / Ifk; //求出Kc; Xxd = Ifk / Ifg; //求出X*d; Xdd = J[0]/1.73205/Ibc; //求出Xd; str1 = QString ("%0").arg(Kc, 0, 'f', 4); Kc_lineEdit->setText(str1); str2 = QString ("%0").arg(Xxd, 0, 'f', 4); Xxd_lineEdit->setText(str2); str3 = QString ("%0").arg(Xdd, 0, 'f', 4); Xd_lineEdit->setText(str3); str4 = QString ("%0").arg(Ifg, 0, 'f', 4); Ifg_lineEdit->setText(str4); str5 = QString ("%0").arg(If0, 0, 'f', 4); If0_lineEdit->setText(str5); str6 = QString ("%0").arg(Ifk, 0, 'f', 4); Ifk_lineEdit->setText(str6); ComprehensiveAnalyze_pushButton->setEnabled(FALSE);}QPixmap ComprehensiveAnalyze_Form::Draw_qx_curve(){ float s, kx0, kxa, kx[30]; float k3 = 1.3; int i, j; ComprehensiveAnalyze_iconView->clear(); for( i=999; i>0; i-- ){ if( Xk[i] != 0 && Yk[i] !=0 ){ P=i; break; } } kx0 = ((float)Yk[P]) / ((float)Xk[P]); j=1; s=0.0; for ( i=P-10; i>=P-30; i--){ kx[j] = (float)( Yk[i] - Yk[P+1] ) / (float)( Xk[i] - Xk[P+1] ); if ( fabs(kx0-kx[j]) <= 0.5 ){ s=s+kx[j]; j++; } } kxa=s/ (j-1); QPixmap pixmap( 420, 300 ); QPainter painter; painter.begin( &pixmap ); painter.setPen( green ); painter.drawLine( 40, 280, (int)(40.0+k3*J[0]*360/kxa/J[2]), 30); painter.end(); Ifg = J[0]/kxa; //求出Ifg; for( i=999; i>=0; i-- ){ if ( Xd[i] == (int)Ifg ){ Ibc = 1.0*Yd[i]; //求出Ibc; } } return pixmap;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -