📄 mainfrm.cpp
字号:
AlphaCutType = WEAK;
AlphaCutLabel->Caption = " Weak";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CompositionZadehClick(TObject *Sender)
{
CompositionZadeh->Checked = true;
CompositionMean->Checked = false;
CompositionMeanSquare->Checked = false;
CompositionMeanRoot->Checked = false;
CompositionProduct->Checked = false;
CompositionBoundedSum->Checked = false;
CompositionMethod = ZADEH;
CompositionLabel->Caption = " Zadeh";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CompositionMeanClick(TObject *Sender)
{
CompositionZadeh->Checked = false;
CompositionMean->Checked = true;
CompositionMeanSquare->Checked = false;
CompositionMeanRoot->Checked = false;
CompositionProduct->Checked = false;
CompositionBoundedSum->Checked = false;
CompositionMethod = MEAN;
CompositionLabel->Caption = " Mean";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CompositionMeanSquareClick(TObject *Sender)
{
CompositionZadeh->Checked = false;
CompositionMean->Checked = false;
CompositionMeanSquare->Checked = true;
CompositionMeanRoot->Checked = false;
CompositionProduct->Checked = false;
CompositionBoundedSum->Checked = false;
CompositionMethod = MEANSQUARE;
CompositionLabel->Caption = " Mean^2";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CompositionMeanRootClick(TObject *Sender)
{
CompositionZadeh->Checked = false;
CompositionMean->Checked = false;
CompositionMeanSquare->Checked = false;
CompositionMeanRoot->Checked = true;
CompositionProduct->Checked = false;
CompositionBoundedSum->Checked = false;
CompositionMethod = MEANROOT;
CompositionLabel->Caption = " Mean^.5";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CompositionProductClick(TObject *Sender)
{
CompositionZadeh->Checked = false;
CompositionMean->Checked = false;
CompositionMeanSquare->Checked = false;
CompositionMeanRoot->Checked = false;
CompositionProduct->Checked = true;
CompositionBoundedSum->Checked = false;
CompositionMethod = PRODUCT;
CompositionLabel->Caption = " Product";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CompositionBoundedSumClick(TObject *Sender)
{
CompositionZadeh->Checked = false;
CompositionMean->Checked = false;
CompositionMeanSquare->Checked = false;
CompositionMeanRoot->Checked = false;
CompositionProduct->Checked = false;
CompositionBoundedSum->Checked = true;
CompositionMethod = BOUNDEDSUM;
CompositionLabel->Caption = "BoundSum";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DefuzzificationCentroidClick(TObject *Sender)
{
DefuzzificationCentroid->Checked = true;
DefuzzificationMaximumHeight->Checked = false;
DefuzzificationNearEdge->Checked = false;
DefuzzificationFarEdge->Checked = false;
DefuzzificationMethod = CENTROID;
DefuzzificationLabel->Caption = " Centroid";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DefuzzificationMaximumHeightClick(TObject *Sender)
{
DefuzzificationCentroid->Checked = false;
DefuzzificationMaximumHeight->Checked = true;
DefuzzificationNearEdge->Checked = false;
DefuzzificationFarEdge->Checked = false;
DefuzzificationMethod = MAXIMUM_HEIGHT;
DefuzzificationLabel->Caption = "MaximumHeight";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DefuzzificationNearEdgeClick(TObject *Sender)
{
DefuzzificationCentroid->Checked = false;
DefuzzificationMaximumHeight->Checked = false;
DefuzzificationNearEdge->Checked = true;
DefuzzificationFarEdge->Checked = false;
DefuzzificationMethod = NEAR_EDGE;
DefuzzificationLabel->Caption = " NearEdge";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DefuzzificationFarEdgeClick(TObject *Sender)
{
DefuzzificationCentroid->Checked = false;
DefuzzificationMaximumHeight->Checked = false;
DefuzzificationNearEdge->Checked = false;
DefuzzificationFarEdge->Checked = true;
DefuzzificationMethod = FAR_EDGE;
DefuzzificationLabel->Caption = " FarEdge";
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::PaintBox2Paint(TObject *Sender)
{
PaintBox2->Canvas->Pen->Color = clGreen;
if (FC->C2->input_variables[0]->fuzzysets[0] != NULL) FC->C2->input_variables[0]->fuzzysets[0]->Draw(PaintBox2->Canvas);
if (FC->C2->input_variables[0]->fuzzysets[1] != NULL) FC->C2->input_variables[0]->fuzzysets[1]->Draw(PaintBox2->Canvas);
if (FC->C2->input_variables[0]->fuzzysets[2] != NULL) FC->C2->input_variables[0]->fuzzysets[2]->Draw(PaintBox2->Canvas);
PaintBox2->Canvas->Pen->Color = clAqua;
if (FC->C2->input_variables[1]->fuzzysets[0] != NULL) FC->C2->input_variables[1]->fuzzysets[0]->Draw(PaintBox2->Canvas);
if (FC->C2->input_variables[1]->fuzzysets[1] != NULL) FC->C2->input_variables[1]->fuzzysets[1]->Draw(PaintBox2->Canvas);
if (FC->C2->input_variables[1]->fuzzysets[2] != NULL) FC->C2->input_variables[1]->fuzzysets[2]->Draw(PaintBox2->Canvas);
PaintBox2->Canvas->Pen->Color = clInfoBk;
if (FC->C2->output_variable->fuzzysets[0] != NULL) FC->C2->output_variable->fuzzysets[0]->Draw(PaintBox2->Canvas);
if (FC->C2->output_variable->fuzzysets[1] != NULL) FC->C2->output_variable->fuzzysets[1]->Draw(PaintBox2->Canvas);
if (FC->C2->output_variable->fuzzysets[2] != NULL) FC->C2->output_variable->fuzzysets[2]->Draw(PaintBox2->Canvas);
if (FC->C2->output_variable->fuzzysets[3] != NULL) FC->C2->output_variable->fuzzysets[3]->Draw(PaintBox2->Canvas);
if (FC->C2->output_variable->fuzzysets[4] != NULL) FC->C2->output_variable->fuzzysets[4]->Draw(PaintBox2->Canvas);
if (FC->local_repulsionsets[0] != NULL)
{
PaintBox2->Canvas->Pen->Color = clBlue;
FC->local_repulsionsets[0]->Draw(PaintBox2->Canvas);
PaintBox2->Canvas->Pen->Color = clRed;
double scalar = ((FC->local_repulsions[0] - FC->local_repulsionsets[0]->get_variable()->begin)/(FC->local_repulsionsets[0]->get_variable()->end - FC->local_repulsionsets[0]->get_variable()->begin))*DOMAIN_WIDTH;
PaintBox2->Canvas->MoveTo(2 * scalar, 100 * 0.0);
PaintBox2->Canvas->LineTo(2 * scalar, 100 * 1.0);
PaintBox2->Canvas->Refresh();
Output2CGauge->Progress = ((int)FC->local_repulsions[0]);
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::Input21TrackBarChange(TObject *Sender)
{
Input21ValueLabel->Caption = IntToStr(Input21TrackBar->Position);
Update();
}
void __fastcall TMainForm::Input22TrackBarChange(TObject *Sender)
{
Input22ValueLabel->Caption = IntToStr(Input22TrackBar->Position);
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::PaintBoxPaint(TObject *Sender)
{
PaintBox->Canvas->Pen->Color = clGreen;
if (FC->C3->input_variables[0]->fuzzysets[0] != NULL) FC->C3->input_variables[0]->fuzzysets[0]->Draw(PaintBox->Canvas);
if (FC->C3->input_variables[0]->fuzzysets[1] != NULL) FC->C3->input_variables[0]->fuzzysets[1]->Draw(PaintBox->Canvas);
if (FC->C3->input_variables[0]->fuzzysets[2] != NULL) FC->C3->input_variables[0]->fuzzysets[2]->Draw(PaintBox->Canvas);
PaintBox->Canvas->Pen->Color = clAqua;
if (FC->C3->input_variables[1]->fuzzysets[0] != NULL) FC->C3->input_variables[1]->fuzzysets[0]->Draw(PaintBox->Canvas);
if (FC->C3->input_variables[1]->fuzzysets[1] != NULL) FC->C3->input_variables[1]->fuzzysets[1]->Draw(PaintBox->Canvas);
if (FC->C3->input_variables[1]->fuzzysets[2] != NULL) FC->C3->input_variables[1]->fuzzysets[2]->Draw(PaintBox->Canvas);
PaintBox->Canvas->Pen->Color = clInfoBk;
if (FC->C3->output_variable->fuzzysets[0] != NULL) FC->C3->output_variable->fuzzysets[0]->Draw(PaintBox->Canvas);
if (FC->C3->output_variable->fuzzysets[1] != NULL) FC->C3->output_variable->fuzzysets[1]->Draw(PaintBox->Canvas);
if (FC->C3->output_variable->fuzzysets[2] != NULL) FC->C3->output_variable->fuzzysets[2]->Draw(PaintBox->Canvas);
if (FC->C3->output_variable->fuzzysets[3] != NULL) FC->C3->output_variable->fuzzysets[3]->Draw(PaintBox->Canvas);
if (FC->C3->output_variable->fuzzysets[4] != NULL) FC->C3->output_variable->fuzzysets[4]->Draw(PaintBox->Canvas);
if (FC->migrationsets[0] != NULL)
{
PaintBox->Canvas->Pen->Color = clBlue;
FC->migrationsets[0]->Draw(PaintBox->Canvas);
PaintBox->Canvas->Pen->Color = clRed;
double scalar = ((FC->migrations[0] - FC->migrationsets[0]->get_variable()->begin)/(FC->migrationsets[0]->get_variable()->end - FC->migrationsets[0]->get_variable()->begin))*DOMAIN_WIDTH;
PaintBox->Canvas->MoveTo(2 * scalar, 100 * 0.0);
PaintBox->Canvas->LineTo(2 * scalar, 100 * 1.0);
PaintBox->Canvas->Refresh();
OutputCGauge->Progress = ((int)FC->migrations[0]);
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::PaintBox1DblClick(TObject *Sender)
{
FC->C1->edit_rules();
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::PaintBox2DblClick(TObject *Sender)
{
FC->C2->edit_rules();
Update();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::PaintBoxDblClick(TObject *Sender)
{
FC->C3->edit_rules();
Update();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -