void graphics::NgoiNhaTiHon(QPainter& painter) { QPoint A(150,450); QPoint B(350,450); QPoint C(350,200); QPoint D(250,100); QPoint E(150,200); QPolygon poly1; poly1 << A << B << C << D << E; painter.drawPolygon(poly1); // cai cua QPoint A1(250,450); QPoint B1(250,300); QPoint C1(200,300); QPoint D1(200,450); QPolygon poly11; poly11 << A1 << B1 << C1 << D1; painter.drawPolygon(poly11); painter.drawRect(300,250,30,30); // ong khoi QPoint A12(200,150); QPoint B12(200,90); QPoint C12(175,90); QPoint D12(175,175); QPolygon poly12; poly12 << A12 << B12 << C12 << D12; painter.drawPolyline(poly12); }
void LocalGeometryRef::ComputeProbabilityMatrix() { this->probability_matrix.set_size(this->num_row, this->num_row); vnl_matrix< double > D; D.set_size(this->num_row, this->num_row); D.fill(0); for(int i = 0; i < this->num_row; i++) { D(i, i) = this->similarity_matrix.get_row(i).sum(); } for(int row=0; row <this->num_row; row++) { for(int col=0; col<this->num_row; col++) { if( fabs(D(row, row)) < 1.0E-6 ) { this->probability_matrix(row,col) = this->similarity_matrix(row,col)/1; } else { this->probability_matrix(row,col) = this->similarity_matrix(row,col)/D(row, row); } } } for(int row=0; row <this->num_row; row++) { if( fabs(D(row, row)) < 1.0E-6 ) { D(row, row) = 0.0005; } } vnl_symmetric_eigensystem<double> sysD(D); this->D12 = sysD.square_root(); this->Dn12 = sysD.inverse_square_root(); this->probability_matrix = D12 * this->probability_matrix; this->probability_matrix = this->probability_matrix * Dn12; //output files for debugging FILE *fp1 = fopen("D.txt","w"); for(int i=0; i<this->num_row; i++) { for(int j=0; j<this->num_row; j++) { fprintf(fp1,"%f\t",D(i, j)); } fprintf(fp1,"\n"); } fclose(fp1); FILE *fp2 = fopen("D12.txt","w"); for(int i=0; i<this->num_row; i++) { for(int j=0; j<this->num_row; j++) { fprintf(fp2,"%f\t",D12(i, j)); } fprintf(fp2,"\n"); } fclose(fp2); FILE *fp3 = fopen("similarity.txt","w"); for(int i=0; i<this->num_row; i++) { for(int j=0; j<this->num_row; j++) { fprintf(fp3,"%f\t",this->similarity_matrix(i, j)); } fprintf(fp3,"\n"); } fclose(fp3); FILE *fp4 = fopen("probability.txt","w"); for(int i=0; i<this->num_row; i++) { for(int j=0; j<this->num_row; j++) { fprintf(fp4,"%f\t",this->probability_matrix(i, j)); } fprintf(fp4,"\n"); } fclose(fp4); FILE *fp5 = fopen("Dn12.txt","w"); for(int i=0; i<this->num_row; i++) { for(int j=0; j<this->num_row; j++) { fprintf(fp5,"%f\t",Dn12(i, j)); } fprintf(fp5,"\n"); } fclose(fp5); }