Merge branch 'main' of http://git.hivekion.com:3000/jiayulong/logplus
This commit is contained in:
commit
25c314dbac
|
|
@ -2355,7 +2355,13 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
|
||||||
this->CommonPropertyChanged(pProperty, variant);
|
this->CommonPropertyChanged(pProperty, variant);
|
||||||
this->changedCrackProperty(m_propertyData[pProperty], variant);
|
this->changedCrackProperty(m_propertyData[pProperty], variant);
|
||||||
}
|
}
|
||||||
|
else if (m_strCurrentProperty == Kedou_Property)//蝌蚪图
|
||||||
|
{
|
||||||
|
//先处理通用属性
|
||||||
|
CommonPropertyChanged(pProperty, variant);
|
||||||
|
//
|
||||||
|
changedKedouProperty(m_propertyData[pProperty], variant);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -3178,6 +3184,11 @@ void PropertyWidget::initProperty(FormInfo *formInfo)
|
||||||
// 岩心分析
|
// 岩心分析
|
||||||
this->initCorePhysicsProperty(formInfo);
|
this->initCorePhysicsProperty(formInfo);
|
||||||
}
|
}
|
||||||
|
else if (m_strLineName == "FRAC_HOLE.TABLE")
|
||||||
|
{
|
||||||
|
//蝌蚪图
|
||||||
|
this->initKedouProperty(formInfo);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this->initTableProperty(formInfo);
|
this->initTableProperty(formInfo);
|
||||||
|
|
@ -5176,3 +5187,272 @@ void PropertyWidget::changedRoseProperty(QString strProperty, QVariant varVal)
|
||||||
emit CallManage::getInstance()->sig_changeRoseProperty(variantMap);
|
emit CallManage::getInstance()->sig_changeRoseProperty(variantMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PropertyWidget::initKedouProperty(FormInfo *formInfo)
|
||||||
|
{
|
||||||
|
|
||||||
|
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
|
||||||
|
_CreateVariantPropertyItem("字体", "名称", formInfo->m_curveNameFont, QVariant::Font);
|
||||||
|
_CreateVariantPropertyItem("字体", "单位", formInfo->m_strUnitFont, QVariant::Font);
|
||||||
|
_CreateVariantPropertyItem("字体", "刻度", formInfo->m_pl_fontScale, QVariant::Font);
|
||||||
|
|
||||||
|
_CreateVariantPropertyItem("井文件名", "井文件名称", m_strSlfName, QVariant::String);
|
||||||
|
|
||||||
|
QStringList listType;
|
||||||
|
listType.append("曲线型数据");
|
||||||
|
listType.append("表格型数据");
|
||||||
|
_CreateEnumPropertyItem("数据类型选择", "数据类型", formInfo->m_pl_dataType, listType);
|
||||||
|
//
|
||||||
|
_CreateVariantPropertyItem("曲线选择", "方位曲线", formInfo->m_pl_azimuthCurve, QVariant::String);
|
||||||
|
_CreateVariantPropertyItem("曲线选择", "倾角曲线", formInfo->m_pl_inclinationCurve, QVariant::String);
|
||||||
|
_CreateVariantPropertyItem("曲线选择", "可信度曲线", formInfo->m_pl_GradCurve, QVariant::String);
|
||||||
|
//
|
||||||
|
_CreateVariantPropertyItem("字段选择(数据表)", "深度字段", formInfo->m_rose_depth_field, QVariant::String);
|
||||||
|
_CreateVariantPropertyItem("字段选择(数据表)", "方位字段", formInfo->m_rose_azimuth_field, QVariant::String);
|
||||||
|
_CreateVariantPropertyItem("字段选择(数据表)", "倾角字段", formInfo->m_rose_dip_field, QVariant::String);
|
||||||
|
_CreateVariantPropertyItem("字段选择(数据表)", "属性字段", formInfo->m_rose_attribute_field, QVariant::String);
|
||||||
|
//
|
||||||
|
_CreateVariantPropertyItem("蝌蚪符号", "圆半径", formInfo->m_nRadius, QVariant::Double);
|
||||||
|
_CreateVariantPropertyItem("蝌蚪符号", "圆线宽度", formInfo->m_nCircleWidth, QVariant::Double);
|
||||||
|
_CreateVariantPropertyItem("蝌蚪符号", "尾线长度", formInfo->m_nTailLen, QVariant::Double);
|
||||||
|
_CreateVariantPropertyItem("蝌蚪符号", "尾线宽度", formInfo->m_nTailWidth, QVariant::Double);
|
||||||
|
_CreateVariantPropertyItem("蝌蚪符号", "圆线颜色", formInfo->m_crCircle, QVariant::Color);
|
||||||
|
_CreateVariantPropertyItem("蝌蚪符号", "尾线颜色", formInfo->m_crTail, QVariant::Color);
|
||||||
|
//
|
||||||
|
_CreateVariantPropertyItem("显示控制", "最小倾角", formInfo->m_pl_minInclination, QVariant::Double);
|
||||||
|
_CreateVariantPropertyItem("显示控制", "最大倾角", formInfo->m_pl_maxInclination, QVariant::Double);
|
||||||
|
_CreateVariantPropertyItem("显示控制", "可信度1", formInfo->m_flGrad1, QVariant::Double);
|
||||||
|
_CreateVariantPropertyItem("显示控制", "可信度2", formInfo->m_flGrad2, QVariant::Double);
|
||||||
|
//
|
||||||
|
_CreateVariantPropertyItem("显示控制(数据表)", "小数位数", formInfo->m_crack_decimal_digits, QVariant::Int);
|
||||||
|
// 分类
|
||||||
|
this->loadClassifyProperty(formInfo);
|
||||||
|
|
||||||
|
m_strCurrentProperty = Kedou_Property;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PropertyWidget::changedKedouProperty(QString strProperty, QVariant varVal)
|
||||||
|
{
|
||||||
|
bool flag = false;
|
||||||
|
// 字体
|
||||||
|
if ("名称" == strProperty)
|
||||||
|
{
|
||||||
|
QFont newFont = varVal.value<QFont>();
|
||||||
|
// this->m_formInfo->m_strAliasNameFont = newFont;
|
||||||
|
// this->m_formInfo->repaint();
|
||||||
|
m_formInfo->m_curveNameFont = newFont;
|
||||||
|
m_formInfo->update();
|
||||||
|
}
|
||||||
|
else if ("单位" == strProperty)
|
||||||
|
{
|
||||||
|
QFont temp = varVal.value<QFont>();
|
||||||
|
this->m_formInfo->m_strUnitFont = temp;
|
||||||
|
this->m_formInfo->repaint();
|
||||||
|
}
|
||||||
|
else if ("刻度" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_fontScale = varVal.value<QFont>();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
// 数据
|
||||||
|
else if ("数据类型" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_dataType = varVal.toInt();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("方位曲线" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_azimuthCurve = varVal.toString();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("倾角曲线" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_inclinationCurve = varVal.toString();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("可信度曲线" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_GradCurve = varVal.toString();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
// 蝌蚪符号
|
||||||
|
else if ("圆半径" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_nRadius = varVal.toDouble();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("圆线宽度" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_nCircleWidth = varVal.toDouble();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("尾线长度" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_nTailLen = varVal.toDouble();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("尾线宽度" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_nTailWidth = varVal.toDouble();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("圆线颜色" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_crCircle = varVal.value<QColor>();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("尾线颜色" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_crTail = varVal.value<QColor>();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
else if ("最小倾角" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_minInclination = varVal.toDouble();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("最大倾角" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_maxInclination = varVal.toDouble();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("可信度1" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_flGrad1 = varVal.toDouble();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("可信度2" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_flGrad2 = varVal.toDouble();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
//显示控制(数据表)
|
||||||
|
else if ("小数位数" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_crack_decimal_digits = varVal.toInt();
|
||||||
|
}
|
||||||
|
// 表数据
|
||||||
|
else if ("深度字段" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_rose_depth_field = varVal.toString();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("方位字段" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_rose_azimuth_field = varVal.toString();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("倾角字段" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_rose_dip_field = varVal.toString();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
else if ("属性字段" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_rose_attribute_field = varVal.toString();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
// 分类
|
||||||
|
else if ("高导缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_highGap = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("高阻缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_highReservoir = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("网状缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_reticularFracture = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("诱导缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_inducedFracture = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("层理" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_bedLayer = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("侵蚀面" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_erosionSurface = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("孔洞" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_pore = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("气孔" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_vesicle = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("砾石" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_gravel = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("结核" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_nodule = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("团块" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_lumps = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("断层" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_fault = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("垂直缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_verticalFracture = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("自定义1" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_custom1 = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("自定义2" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_custom2 = varVal.toBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(flag)
|
||||||
|
{
|
||||||
|
QVariantMap variantMap;
|
||||||
|
// 必须用来判断当前道
|
||||||
|
variantMap["m_strTrackName"] = this->m_formInfo->m_strTrackName;
|
||||||
|
// 数据
|
||||||
|
variantMap["m_pl_dataType"] = this->m_formInfo->m_pl_dataType;
|
||||||
|
variantMap["m_pl_azimuthCurve"] = this->m_formInfo->m_pl_azimuthCurve;
|
||||||
|
variantMap["m_pl_inclinationCurve"] = this->m_formInfo->m_pl_inclinationCurve;
|
||||||
|
// 表数据
|
||||||
|
variantMap["m_rose_depth_field"] = this->m_formInfo->m_rose_depth_field;
|
||||||
|
variantMap["m_rose_azimuth_field"] = this->m_formInfo->m_rose_azimuth_field;
|
||||||
|
variantMap["m_rose_dip_field"] = this->m_formInfo->m_rose_dip_field;
|
||||||
|
variantMap["m_rose_attribute_field"] = this->m_formInfo->m_rose_attribute_field;
|
||||||
|
// 控制曲线
|
||||||
|
variantMap["m_pl_controlCurveName"] = this->m_formInfo->m_pl_controlCurveName;
|
||||||
|
variantMap["m_pl_controlMinValue"] = this->m_formInfo->m_pl_controlMinValue;
|
||||||
|
variantMap["m_pl_controlMaxValue"] = this->m_formInfo->m_pl_controlMaxValue;
|
||||||
|
// 字体
|
||||||
|
variantMap["m_pl_fontScale"] = this->m_formInfo->m_pl_fontScale;
|
||||||
|
// 蝌蚪图
|
||||||
|
variantMap["m_rose_sector_enabled"] = this->m_formInfo->m_rose_sector_enabled;
|
||||||
|
variantMap["m_rose_circle_radius_cm"] = this->m_formInfo->m_rose_circle_radius_cm;
|
||||||
|
variantMap["m_rose_radiation_circle_enabled"] = this->m_formInfo->m_rose_radiation_circle_enabled;
|
||||||
|
variantMap["m_rose_azimuth_print_interval"] = this->m_formInfo->m_rose_azimuth_print_interval;
|
||||||
|
variantMap["m_rose_circle_line_color"] = this->m_formInfo->m_rose_circle_line_color;
|
||||||
|
variantMap["m_rose_circle_line_width"] = this->m_formInfo->m_rose_circle_line_width;
|
||||||
|
variantMap["m_rose_stress_line_color"] = this->m_formInfo->m_rose_stress_line_color;
|
||||||
|
variantMap["m_rose_collapse_line_color"] = this->m_formInfo->m_rose_collapse_line_color;
|
||||||
|
variantMap["m_rose_draw_radiation_line"] = this->m_formInfo->m_rose_draw_radiation_line;
|
||||||
|
variantMap["m_rose_draw_wellbore_collapse"] = this->m_formInfo->m_rose_draw_wellbore_collapse;
|
||||||
|
variantMap["m_rose_fill_enabled"] = this->m_formInfo->m_rose_fill_enabled;
|
||||||
|
variantMap["m_rose_draw_annotation"] = this->m_formInfo->m_rose_draw_annotation;
|
||||||
|
//
|
||||||
|
variantMap["m_pl_minInclination"] = this->m_formInfo->m_pl_minInclination;
|
||||||
|
variantMap["m_pl_maxInclination"] = this->m_formInfo->m_pl_maxInclination;
|
||||||
|
|
||||||
|
variantMap["m_strUuid"] = this->m_formInfo->m_strUuid;
|
||||||
|
//emit CallManage::getInstance()->sig_changeRoseProperty(variantMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,8 @@
|
||||||
#define Tubing_Property "Tubing_Property" //套管组件
|
#define Tubing_Property "Tubing_Property" //套管组件
|
||||||
#define TubingItem_Property "TubingItem_Property" //套管组件item
|
#define TubingItem_Property "TubingItem_Property" //套管组件item
|
||||||
|
|
||||||
|
#define Kedou_Property "Kedou_Property" //蝌蚪图
|
||||||
|
|
||||||
#pragma execution_character_set("utf-8")
|
#pragma execution_character_set("utf-8")
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -256,6 +258,10 @@ public:
|
||||||
void initRoseProperty(FormInfo *formInfo);
|
void initRoseProperty(FormInfo *formInfo);
|
||||||
void changedRoseProperty(QString strProName, QVariant val);
|
void changedRoseProperty(QString strProName, QVariant val);
|
||||||
|
|
||||||
|
//蝌蚪图
|
||||||
|
void initKedouProperty(FormInfo *formInfo);
|
||||||
|
void changedKedouProperty(QString strProName, QVariant val);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void SlotPropertyChanged(QtProperty *property, const QVariant &variant);
|
void SlotPropertyChanged(QtProperty *property, const QVariant &variant);
|
||||||
void SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle);
|
void SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle);
|
||||||
|
|
|
||||||
|
|
@ -2873,8 +2873,11 @@ QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QStri
|
||||||
//隐藏网格
|
//隐藏网格
|
||||||
curv->xAxis->grid()->setVisible(false);
|
curv->xAxis->grid()->setVisible(false);
|
||||||
curv->yAxis->grid()->setVisible(false);
|
curv->yAxis->grid()->setVisible(false);
|
||||||
|
//
|
||||||
initTableLine(curv, strSlfName, strLineName);
|
curv->m_bRowGridVisible = false;
|
||||||
|
curv->m_bColGridVisible = false;
|
||||||
|
//
|
||||||
|
initKedou(curv, strSlfName, strLineName);
|
||||||
}
|
}
|
||||||
else if (strLineName == "WORDS_RELUST")
|
else if (strLineName == "WORDS_RELUST")
|
||||||
{
|
{
|
||||||
|
|
@ -5047,99 +5050,8 @@ void FormDraw::DrawImageNew_NoFilter(QMyCustomPlot *widget, QString strSlfName,
|
||||||
}
|
}
|
||||||
|
|
||||||
//表格曲线
|
//表格曲线
|
||||||
void FormDraw::initTableLine(QMyCustomPlot *widget, QString strSlfName, QString strLineName)
|
void FormDraw::initKedou(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName, QColor newlineColor, QStringList listOtherProperty)
|
||||||
{
|
{
|
||||||
m_Value=NULL;
|
|
||||||
m_Value2=NULL;
|
|
||||||
m_Value3=NULL;
|
|
||||||
//m_csUnit = "(°)";
|
|
||||||
m_bTableData=0;//表格或曲线
|
|
||||||
m_LeftVal2=0;
|
|
||||||
m_RightVal2=360;
|
|
||||||
|
|
||||||
m_csCurveDDIR = "DDIR"; // 方位 曲线名
|
|
||||||
m_csCurveDANG = "DANG";//倾角
|
|
||||||
m_csCurveGrad = "GRAD";
|
|
||||||
|
|
||||||
|
|
||||||
m_nTailWidth=2;
|
|
||||||
m_crTail=qRgb(0,0,0);
|
|
||||||
m_crPointFill=qRgb(0,0,0);
|
|
||||||
|
|
||||||
m_crGridSmall=qRgb(100,100,100);
|
|
||||||
m_nRadius = 6;
|
|
||||||
m_nTailLen = 10;
|
|
||||||
m_nCircleWidth=1;
|
|
||||||
m_flGrad1 = 10;
|
|
||||||
m_flGrad2 = 50;
|
|
||||||
|
|
||||||
//Table dip
|
|
||||||
m_qsTable="FRAC_HOLE.TABLE";
|
|
||||||
m_qsDIR=("DIR"); // 方位 曲线名
|
|
||||||
m_qsDIP=("DIPorS");//倾角
|
|
||||||
m_qsDepth="DEP";
|
|
||||||
m_qsID = "ID";
|
|
||||||
m_qsProperty=("ID");
|
|
||||||
m_iPrecision = 3;
|
|
||||||
//
|
|
||||||
// ReadFracDef();
|
|
||||||
// for (int i = 0 ; i < iFracType ; i++)
|
|
||||||
// {
|
|
||||||
// m_bTypeDraw[i] = true;
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (m_bTableData)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
m_qsDIR=("DDIR"); // 方位 曲线名
|
|
||||||
m_qsDIP=("DANG");//倾角
|
|
||||||
m_qsDepth="DEPT";
|
|
||||||
m_qsID = "ID";
|
|
||||||
ReadData(strSlfName, strLineName);
|
|
||||||
|
|
||||||
//------------------------
|
|
||||||
// int nPointNum = m_FracTabList.count();
|
|
||||||
// if ( nPointNum < 1 )return ;
|
|
||||||
// FRAC_TABLE frac = m_FracTabList.at(0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//
|
|
||||||
m_csCurveDDIR = "DDIR"; // 方位 曲线名
|
|
||||||
m_csCurveDANG = "DANG";//倾角
|
|
||||||
m_csCurveGrad = "GRAD";
|
|
||||||
this->ReadData(strSlfName, m_csCurveDDIR, 0, &m_Curve);
|
|
||||||
this->ReadData(strSlfName, m_csCurveDANG, 1, &m_Curve2);
|
|
||||||
this->ReadData(strSlfName, m_csCurveGrad, 2, &m_Curve3);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// bool bFistValue=false;
|
|
||||||
// float vmax = -9999;
|
|
||||||
// float vmin = -9999;
|
|
||||||
// //最大值,最小值
|
|
||||||
// vmax=vmin=frac.DIR;
|
|
||||||
// //slf文件读取曲线
|
|
||||||
// for(int i=0; i<nPointNum; i++)
|
|
||||||
// {
|
|
||||||
// frac = m_FracTabList.at(i);
|
|
||||||
// if(frac.DIR==-9999)
|
|
||||||
// {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
// if(bFistValue==false)
|
|
||||||
// {
|
|
||||||
// //最大值,最小值默认采用第一个有效值
|
|
||||||
// bFistValue=true;
|
|
||||||
// vmax = vmin = frac.DIR;
|
|
||||||
// }
|
|
||||||
// if(vmax<frac.DIR)vmax=frac.DIR;
|
|
||||||
// if(vmin>frac.DIR)vmin=frac.DIR;
|
|
||||||
// }
|
|
||||||
// widget->m_iX1 = vmin;
|
|
||||||
// widget->m_iX2 = vmax;
|
|
||||||
|
|
||||||
int iMyWidth = widget->axisRect(0)->width();
|
int iMyWidth = widget->axisRect(0)->width();
|
||||||
float vmax = iMyWidth;
|
float vmax = iMyWidth;
|
||||||
float vmin = 0;
|
float vmin = 0;
|
||||||
|
|
@ -5168,19 +5080,41 @@ void FormDraw::initTableLine(QMyCustomPlot *widget, QString strSlfName, QString
|
||||||
widget->xAxis2->setVisible(false);
|
widget->xAxis2->setVisible(false);
|
||||||
widget->yAxis->setVisible(false);
|
widget->yAxis->setVisible(false);
|
||||||
widget->yAxis2->setVisible(false);
|
widget->yAxis2->setVisible(false);
|
||||||
//
|
|
||||||
if (m_bTableData)
|
|
||||||
{
|
|
||||||
DrawTabDip(widget);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DrawDip(widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString strAliasName = "";
|
//-----------------------------------
|
||||||
|
widget->m_Value=NULL;
|
||||||
|
widget->m_Value2=NULL;
|
||||||
|
widget->m_Value3=NULL;
|
||||||
|
//m_csUnit = "(°)";
|
||||||
|
widget->m_bTableData=0;//表格或曲线
|
||||||
|
widget->m_LeftVal2=0;
|
||||||
|
widget->m_RightVal2=360;
|
||||||
|
widget->m_csCurveDDIR = "DDIR"; // 方位 曲线名
|
||||||
|
widget->m_csCurveDANG = "DANG";//倾角
|
||||||
|
widget->m_csCurveGrad = "GRAD";
|
||||||
|
widget->m_nTailWidth=2;
|
||||||
|
widget->m_crTail=qRgb(0,0,0);
|
||||||
|
widget->m_crPointFill=qRgb(0,0,0);
|
||||||
|
//
|
||||||
|
widget->m_crGridSmall=qRgb(100,100,100);
|
||||||
|
widget->m_nRadius = 6;
|
||||||
|
widget->m_nTailLen = 10;
|
||||||
|
widget->m_nCircleWidth=1;
|
||||||
|
widget->m_flGrad1 = 10; //可信度
|
||||||
|
widget->m_flGrad2 = 50;
|
||||||
|
//Table dip
|
||||||
|
widget->m_qsTable="FRAC_HOLE.TABLE";
|
||||||
|
widget->m_qsDIR=("DIR"); // 方位 曲线名
|
||||||
|
widget->m_qsDIP=("DIPorS");//倾角
|
||||||
|
widget->m_qsDepth="DEP";
|
||||||
|
widget->m_qsID = "ID";
|
||||||
|
widget->m_qsProperty=("ID");
|
||||||
|
widget->m_iPrecision = 3;
|
||||||
|
//蝌蚪图
|
||||||
|
widget->Draw_Kedou();
|
||||||
|
|
||||||
|
//------
|
||||||
QString strUnit = "";
|
QString strUnit = "";
|
||||||
QColor newlineColor=QColor(0,0,0);
|
|
||||||
double width=2;
|
double width=2;
|
||||||
QString strScaleType = "";
|
QString strScaleType = "";
|
||||||
//道-对象
|
//道-对象
|
||||||
|
|
@ -6562,157 +6496,6 @@ void FormDraw::CalcDipWidth(int nColumn,float *flWidth,float factor,int x1,int x
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormDraw::DrawDip(QMyCustomPlot *widget)
|
|
||||||
{
|
|
||||||
float flWidth[50];
|
|
||||||
int l;
|
|
||||||
float dep;
|
|
||||||
int m_nScaleThinGrid=10;
|
|
||||||
// 计算位置
|
|
||||||
int iMyWidth = widget->axisRect(0)->width();
|
|
||||||
float x1 = 0;
|
|
||||||
float x2 = iMyWidth;
|
|
||||||
float x=0,y=0;
|
|
||||||
int j=0,i=0,k=0;
|
|
||||||
float flTemp=0;
|
|
||||||
for(int i=0;i<50;i++) flWidth[i]=0;
|
|
||||||
CalcDipWidth(m_nScaleThinGrid, flWidth, 1.2, x1, x2, 1.);
|
|
||||||
|
|
||||||
//绘制网格线,注意颜色、宽度属性
|
|
||||||
QPen pPenStraightLine(m_crTail, m_nTailWidth);
|
|
||||||
QPen pPenStraightLineSmall(m_crGridSmall, m_nTailWidth/2);
|
|
||||||
for(i=0;i<m_nScaleThinGrid;i++)
|
|
||||||
{
|
|
||||||
if ( i == 0 ) x =1;
|
|
||||||
else x = x1;
|
|
||||||
x1 = x + flWidth[i];
|
|
||||||
if ( (x1-x) <= 7) {
|
|
||||||
l = 2; // 小于1厘米
|
|
||||||
}
|
|
||||||
else l = 5;
|
|
||||||
for ( j=0; j<l; j++)
|
|
||||||
{
|
|
||||||
flTemp = (x + j*(x1 - x)/l);
|
|
||||||
double dtick=flTemp;
|
|
||||||
if(i==0&&j==0) continue;
|
|
||||||
{
|
|
||||||
QCPItemStraightLine *qcpItemLine = new QCPItemStraightLine(widget);
|
|
||||||
qcpItemLine->point1->setCoords(-m_SDep, dtick);//位置
|
|
||||||
qcpItemLine->point2->setCoords(-m_EDep, dtick);//位置
|
|
||||||
if(j==0)
|
|
||||||
{
|
|
||||||
qcpItemLine->setPen(pPenStraightLine);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
qcpItemLine->setPen(pPenStraightLineSmall);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QPen pPen(m_crTail,m_nTailWidth);
|
|
||||||
QBrush cBrushFill(m_crPointFill);
|
|
||||||
|
|
||||||
float flDepthScale,tempf,flVal;
|
|
||||||
int nPointNum=0,tempi;
|
|
||||||
QRectF rt,rtRect;
|
|
||||||
float dgtord,dr;
|
|
||||||
for(int i=0;i<50;i++) flWidth[i]=0;
|
|
||||||
if(m_Value==0 || m_Value2==0)
|
|
||||||
{
|
|
||||||
Refurbish();
|
|
||||||
}
|
|
||||||
if ( m_Value==0 || m_Value2==0 )
|
|
||||||
return ;
|
|
||||||
|
|
||||||
dgtord=3.14159265/180.;
|
|
||||||
|
|
||||||
CalcDipWidth(9, flWidth, 1.2, 0, iMyWidth, 1);
|
|
||||||
|
|
||||||
|
|
||||||
while ( 1)
|
|
||||||
{
|
|
||||||
dep = m_SDep + k * m_Rlev;
|
|
||||||
if ( dep >m_EDep )
|
|
||||||
break;
|
|
||||||
|
|
||||||
if(dep<m_SDep)
|
|
||||||
{
|
|
||||||
k++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
i=(dep-m_Curve2.StartDepth)/m_Curve2.DepLevel+0.5;
|
|
||||||
if(i<0)
|
|
||||||
{
|
|
||||||
k++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
flVal = GetData(m_Curve2.RepCode,(char *)&m_Value2[i*m_Curve2.CodeLen]);//DANG
|
|
||||||
if ( flVal > m_RightVal || flVal < m_LeftVal )
|
|
||||||
{
|
|
||||||
k++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
tempi = (int)( flVal /10.);
|
|
||||||
|
|
||||||
tempf = 0.;
|
|
||||||
for (j=0; j<tempi; j++)
|
|
||||||
{
|
|
||||||
tempf += flWidth[j];
|
|
||||||
}
|
|
||||||
x = tempf + (flVal-tempi*10.)*(flWidth[j+1]/10.);
|
|
||||||
y = -dep;//起始深度
|
|
||||||
|
|
||||||
|
|
||||||
// pDC->setPen(pPen);// [5/22/2019 9:43 hxb]
|
|
||||||
// rtRect.setLeft(x - GetLineWidth(pDC,m_nRadius));
|
|
||||||
// rtRect.setRight(x + GetLineWidth(pDC,m_nRadius));
|
|
||||||
// rtRect.setBottom(y +GetLineWidth(pDC,m_nRadius));
|
|
||||||
// rtRect.setTop(y -GetLineWidth(pDC,m_nRadius));
|
|
||||||
// pDC->setPen(PenCircle);
|
|
||||||
// pDC->drawEllipse(rtRect.center(),m_nRadius,m_nRadius);
|
|
||||||
|
|
||||||
QCPItemEllipse *qcpItemEllipse = new QCPItemEllipse(widget);
|
|
||||||
qcpItemEllipse->setPen(pPen);
|
|
||||||
qcpItemEllipse->m_bCustom = true;
|
|
||||||
qcpItemEllipse->m_nRadius = m_nRadius;
|
|
||||||
qcpItemEllipse->topLeft->setCoords(y, x);//圆心位置
|
|
||||||
qcpItemEllipse->bottomRight->setCoords(y, x);//圆心位置
|
|
||||||
qcpItemEllipse->setBrush(cBrushFill);//填充圆的颜色
|
|
||||||
|
|
||||||
|
|
||||||
//方位
|
|
||||||
flVal = GetData(m_Curve.RepCode,(char *)&m_Value[i*m_Curve.CodeLen]);//DDIR
|
|
||||||
dr=flVal*dgtord;
|
|
||||||
// // 注意映射方式
|
|
||||||
// x +=GetLineWidth(pDC,m_nRadius)*sin(dr);
|
|
||||||
// y -=GetLineWidth(pDC,m_nRadius)*cos(dr);
|
|
||||||
// float x1=x +GetLineWidth(pDC,m_nTailLen)*sin(dr);
|
|
||||||
// float y1=y -GetLineWidth(pDC,m_nTailLen)*cos(dr);
|
|
||||||
// pDC->setPen(pPen);
|
|
||||||
// pDC->drawLine(QPointF(x,y),QPointF(x1,y1));
|
|
||||||
QCPItemLine *qcpItemLine = new QCPItemLine(widget);
|
|
||||||
qcpItemLine->start->setCoords(y, x);//圆心位置
|
|
||||||
qcpItemLine->end->setCoords(y, x);//圆心位置
|
|
||||||
qcpItemLine->setPen(pPen);
|
|
||||||
qcpItemLine->m_bCustom = true;
|
|
||||||
qcpItemLine->m_nTailLen = m_nTailLen; //尾长
|
|
||||||
qcpItemLine->m_nRadius = m_nRadius; //半径
|
|
||||||
qcpItemLine->m_dr = dr;
|
|
||||||
|
|
||||||
|
|
||||||
//移动对象
|
|
||||||
// widget->mSizeHandleManager->addItem(qcpItemEllipse, true);
|
|
||||||
// widget->mSizeHandleManager->addItem(qcpItemLine, true);
|
|
||||||
|
|
||||||
k++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void FormDraw::DrawJykt(QMyCustomPlot *widget, QString strSlfName)
|
void FormDraw::DrawJykt(QMyCustomPlot *widget, QString strSlfName)
|
||||||
{
|
{
|
||||||
|
|
@ -7073,207 +6856,7 @@ void FormDraw::DrawStck(QMyCustomPlot *widget)
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void FormDraw::DrawTabDip(QMyCustomPlot *widget)
|
|
||||||
{
|
|
||||||
float flDepthScale,tempf,flVal;
|
|
||||||
int i,j,n,nPointNum=0,tempi;
|
|
||||||
QRectF rt,rtRect;
|
|
||||||
float x,y;
|
|
||||||
float dgtord,dr;
|
|
||||||
float flWidth[50];
|
|
||||||
FRAC_TABLE frac;
|
|
||||||
bool bDraw;
|
|
||||||
FRAC_DEF fd;
|
|
||||||
//CString cs;
|
|
||||||
|
|
||||||
if(m_iPrecision<0) m_iPrecision=0;
|
|
||||||
|
|
||||||
nPointNum = m_FracTabList.count();
|
|
||||||
if ( nPointNum < 1 )return ;
|
|
||||||
|
|
||||||
dgtord=3.14159265/180.;
|
|
||||||
//
|
|
||||||
m_nCircleWidth = 1;
|
|
||||||
m_nRadius = 6;
|
|
||||||
m_crCircle = QColor(0,0,0);
|
|
||||||
//
|
|
||||||
m_nTailWidth = 2;
|
|
||||||
m_nTailLen = 10;
|
|
||||||
m_crTail = QColor(0,0,0);
|
|
||||||
|
|
||||||
int iMyWidth = widget->axisRect(0)->width(); //setSizeConstraintRect()
|
|
||||||
int iMyHeight = widget->axisRect(0)->height(); //setSizeConstraintRect()
|
|
||||||
qDebug() << "iMyWidth=" << QString::number(iMyWidth) << ", iMyHeight=" << QString::number(iMyHeight);
|
|
||||||
|
|
||||||
//-----------
|
|
||||||
int l;
|
|
||||||
float x1 = 0;
|
|
||||||
float x2 = iMyWidth;
|
|
||||||
float flTemp=0;
|
|
||||||
for(int i=0;i<50;i++) flWidth[i]=0;
|
|
||||||
int m_nScaleThinGrid=10;
|
|
||||||
CalcDipWidth(m_nScaleThinGrid, flWidth, 1.2, x1, x2, 1.);
|
|
||||||
//绘制网格线,注意颜色、宽度属性
|
|
||||||
QPen pPenStraightLine(m_crTail, m_nTailWidth);
|
|
||||||
QPen pPenStraightLineSmall(m_crGridSmall, m_nTailWidth/2);
|
|
||||||
for(i=0;i<m_nScaleThinGrid;i++)
|
|
||||||
{
|
|
||||||
if ( i == 0 ) x =1;
|
|
||||||
else x = x1;
|
|
||||||
x1 = x + flWidth[i];
|
|
||||||
if ( (x1-x) <= 7) {
|
|
||||||
l = 2; // 小于1厘米
|
|
||||||
}
|
|
||||||
else l = 5;
|
|
||||||
for ( j=0; j<l; j++)
|
|
||||||
{
|
|
||||||
flTemp = (x + j*(x1 - x)/l);
|
|
||||||
double dtick=flTemp;
|
|
||||||
if(i==0&&j==0) continue;
|
|
||||||
{
|
|
||||||
QCPItemStraightLine *qcpItemLine = new QCPItemStraightLine(widget);
|
|
||||||
qcpItemLine->point1->setCoords(-m_iY2, dtick);//位置
|
|
||||||
qcpItemLine->point2->setCoords(-m_iY1, dtick);//位置
|
|
||||||
if(j==0)
|
|
||||||
{
|
|
||||||
qcpItemLine->setPen(pPenStraightLine);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
qcpItemLine->setPen(pPenStraightLineSmall);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CalcDipWidth(9,flWidth, 1.2, 0, iMyWidth, 1.);
|
|
||||||
|
|
||||||
n = m_FracDefList.count();
|
|
||||||
for (i=0; i<nPointNum; i++)
|
|
||||||
{
|
|
||||||
frac = m_FracTabList.at(i);
|
|
||||||
// if ( frac.DEP < -m_iY2 || frac.DEP > -m_iY1)
|
|
||||||
// {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// bDraw = false;
|
|
||||||
// for (j=0; j<n; j++)
|
|
||||||
// {
|
|
||||||
// fd = m_FracDefList.at(j);
|
|
||||||
// // 裂缝描述表中未保存裂缝名称:
|
|
||||||
// //比较裂缝名称比较准确,代码更改,如果比较代码会引起不一致性
|
|
||||||
// if ( (int)(frac.ID) == fd.iCode )
|
|
||||||
// {
|
|
||||||
// bDraw = m_bTypeDraw[j];//fd.bDraw;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//if ( bDraw )
|
|
||||||
{
|
|
||||||
QBrush cBrush(fd.crColor);
|
|
||||||
//圆圈
|
|
||||||
QPen pPen(m_crCircle);
|
|
||||||
pPen.setWidth(m_nCircleWidth);
|
|
||||||
|
|
||||||
//尾巴
|
|
||||||
QPen pPenTail(m_crTail);
|
|
||||||
pPenTail.setWidth(m_nTailWidth);
|
|
||||||
|
|
||||||
// 角度
|
|
||||||
flVal = frac.DIPorS;
|
|
||||||
tempf = flVal /10.;
|
|
||||||
tempi = tempf;
|
|
||||||
x = fmod(flVal,(float)(10.));
|
|
||||||
if ( x == 0 )
|
|
||||||
{
|
|
||||||
tempi=0;//tempi --;
|
|
||||||
}
|
|
||||||
tempf = 0.;
|
|
||||||
for (j=0; j<tempi; j++)
|
|
||||||
tempf += flWidth[j];
|
|
||||||
x = tempf+(flVal-tempi*10.)*(flWidth[tempi]/10.);
|
|
||||||
|
|
||||||
//x = frac.DIPorS;
|
|
||||||
y = -frac.DEP;
|
|
||||||
|
|
||||||
// int LineWidth = m_nRadius;
|
|
||||||
// rtRect.setLeft(x - LineWidth);
|
|
||||||
// rtRect.setRight( x + LineWidth);
|
|
||||||
// rtRect.setBottom( y + LineWidth);
|
|
||||||
// rtRect.setTop(y - LineWidth);
|
|
||||||
// pDC->setPen(pPen);
|
|
||||||
// pDC->drawEllipse(rtRect.left(),rtRect.top(),rtRect.width(),rtRect.height());
|
|
||||||
// QPainterPath myPath;
|
|
||||||
// myPath.addEllipse(rtRect);
|
|
||||||
// pDC->fillPath(myPath,cBrush);
|
|
||||||
|
|
||||||
//CustomEllipse *qcpitemellipse = new CustomEllipse(widget);
|
|
||||||
|
|
||||||
QCPItemEllipse *qcpItemEllipse = new QCPItemEllipse(widget);
|
|
||||||
qcpItemEllipse->setPen(pPen);
|
|
||||||
qcpItemEllipse->m_bCustom = true;
|
|
||||||
qcpItemEllipse->m_nRadius = m_nRadius;
|
|
||||||
qcpItemEllipse->topLeft->setCoords(y, x);//圆心位置
|
|
||||||
qcpItemEllipse->bottomRight->setCoords(y, x);//圆心位置
|
|
||||||
qcpItemEllipse->setBrush(cBrush);//填充圆的颜色
|
|
||||||
|
|
||||||
//方位
|
|
||||||
dr=frac.DIR *dgtord;
|
|
||||||
|
|
||||||
// QCPItemStraightLine *qcpItemLine = new QCPItemStraightLine(widget);
|
|
||||||
// qcpItemLine->point1->setCoords(y, x);//圆心位置
|
|
||||||
// qcpItemLine->point2->setCoords(y, x);//圆心位置
|
|
||||||
QCPItemLine *qcpItemLine = new QCPItemLine(widget);
|
|
||||||
qcpItemLine->start->setCoords(y, x);//圆心位置
|
|
||||||
qcpItemLine->end->setCoords(y, x);//圆心位置
|
|
||||||
qcpItemLine->setPen(pPenTail);
|
|
||||||
qcpItemLine->m_bCustom = true;
|
|
||||||
qcpItemLine->m_nTailLen = m_nTailLen; //尾长
|
|
||||||
qcpItemLine->m_nRadius = m_nRadius; //半径
|
|
||||||
qcpItemLine->m_dr = dr;
|
|
||||||
|
|
||||||
|
|
||||||
//break;
|
|
||||||
|
|
||||||
// x += m_nRadius*sin(dr);
|
|
||||||
// // 注意映射方式
|
|
||||||
// y -=m_nRadius*cos(dr);
|
|
||||||
// //pDC->moveto(x,y);
|
|
||||||
// float x1=x +m_nTailLen*sin(dr);
|
|
||||||
// // 注意映射方式
|
|
||||||
// float y1= y-m_nTailLen*cos(dr);
|
|
||||||
|
|
||||||
// pDC->setPen(pPenTail);
|
|
||||||
// pDC->drawLine(x,y,x1,y1);
|
|
||||||
|
|
||||||
|
|
||||||
// if ( m_bDrawValue ) //显示倾角、方位
|
|
||||||
// {
|
|
||||||
// rtRect.setTop(rtRect.top()-GetLineWidth(pDC,objViewInfo->GetLogUnitFont().pointSize()));
|
|
||||||
// rtRect.setBottom(rtRect.bottom()+GetLineWidth(pDC,objViewInfo->GetLogUnitFont().pointSize()));
|
|
||||||
// QString cs1 = QString::number(frac.DIPorS,'f',m_iPrecision);
|
|
||||||
// QString cs2 = QString::number(frac.DIR,'f',m_iPrecision);
|
|
||||||
// cs=cs1+"//"+cs2;
|
|
||||||
// cs.Replace((" "),"");
|
|
||||||
// if ( frac.DIPorS >= 30 )
|
|
||||||
// {
|
|
||||||
// x = 2.*(float)(GetLineWidth(pDC,m_nRadius));
|
|
||||||
// rtRect.setRight(rtRect.center().x() - x);
|
|
||||||
// rtRect.setLeft(mrt.left());
|
|
||||||
// pDC->drawText(rtRect,Qt::AlignVCenter|Qt::AlignHCenter,cs.GetString());
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// x = 2.*(float)(GetLineWidth(pDC,m_nRadius));
|
|
||||||
// rtRect.setLeft(rtRect.center().x() + x);
|
|
||||||
// rtRect.setRight(mrt.right());
|
|
||||||
// pDC->drawText(rtRect,Qt::AlignVCenter,cs.GetString());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//read config file: FRAC.CFG,save info into m_FracDef
|
//read config file: FRAC.CFG,save info into m_FracDef
|
||||||
void FormDraw::ReadFracDef()
|
void FormDraw::ReadFracDef()
|
||||||
|
|
|
||||||
|
|
@ -16,29 +16,6 @@
|
||||||
#pragma execution_character_set("utf-8")
|
#pragma execution_character_set("utf-8")
|
||||||
|
|
||||||
//const int iFracType=15;
|
//const int iFracType=15;
|
||||||
//蝌蚪图
|
|
||||||
typedef struct FRACDEF
|
|
||||||
{
|
|
||||||
int iCode; //代码
|
|
||||||
QString csName; // 名称
|
|
||||||
int iType; //形状代码(1:正弦曲线 2:连线 3:封闭区域)
|
|
||||||
QColor crColor; //颜色(红 绿 蓝)
|
|
||||||
int nLineWidth; //线宽度
|
|
||||||
int bDraw; // 是否显示
|
|
||||||
}FRAC_DEF;
|
|
||||||
|
|
||||||
typedef struct FRACTABLE
|
|
||||||
{
|
|
||||||
float DEP; //深度
|
|
||||||
float AorX;
|
|
||||||
float XETAorH;
|
|
||||||
float W;
|
|
||||||
float DIPorS; //倾角
|
|
||||||
float DIR; //方位
|
|
||||||
float ID; //裂缝代码/可信度
|
|
||||||
float NUM;
|
|
||||||
float X[16],Y[16];//X0,Y0,X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5,X6,Y6,X7,Y7,X8,Y8,X9,Y9;
|
|
||||||
}FRAC_TABLE;
|
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class FormDraw;
|
class FormDraw;
|
||||||
|
|
@ -175,13 +152,11 @@ public:
|
||||||
void DrawImageNew_NoFilter(QMyCustomPlot *widget, QString strSlfName, QString &strWaveName, int &_nSamples);
|
void DrawImageNew_NoFilter(QMyCustomPlot *widget, QString strSlfName, QString &strWaveName, int &_nSamples);
|
||||||
|
|
||||||
//表格曲线
|
//表格曲线
|
||||||
void initTableLine(QMyCustomPlot *widget, QString strSlfName, QString strLineName);
|
void initKedou(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName = "蝌蚪图", QColor newlineColor=QColor(0,0,0), QStringList listOtherProperty={});
|
||||||
void ReadFracDef();
|
void ReadFracDef();
|
||||||
void ReadData(QString strSlfName, QString strLineName);//表格
|
void ReadData(QString strSlfName, QString strLineName);//表格
|
||||||
void ReadData(QString strSlfName, QString strLineName, int iCurve, Slf_CURVE *curve);//曲线
|
void ReadData(QString strSlfName, QString strLineName, int iCurve, Slf_CURVE *curve);//曲线
|
||||||
void DrawDip(QMyCustomPlot *widget);
|
|
||||||
void DrawStck(QMyCustomPlot *widget);
|
void DrawStck(QMyCustomPlot *widget);
|
||||||
void DrawTabDip(QMyCustomPlot *widget);
|
|
||||||
void CalcDipWidth(int nColumn,float *flWidth,float factor,int x1,int x2,float flHoriRatio);
|
void CalcDipWidth(int nColumn,float *flWidth,float factor,int x1,int x2,float flHoriRatio);
|
||||||
void Refurbish();
|
void Refurbish();
|
||||||
void DrawJykt(QMyCustomPlot *widget, QString strSlfName);
|
void DrawJykt(QMyCustomPlot *widget, QString strSlfName);
|
||||||
|
|
|
||||||
|
|
@ -954,11 +954,6 @@ void FormInfo::paintEvent(QPaintEvent* event)
|
||||||
//岩心分析,不绘制左右范围
|
//岩心分析,不绘制左右范围
|
||||||
// strShowTxt = "岩心实验数据";
|
// strShowTxt = "岩心实验数据";
|
||||||
}
|
}
|
||||||
else if(m_strLineName=="FRAC_HOLE.TABLE" && m_strType=="tableObject")
|
|
||||||
{
|
|
||||||
//蝌蚪图,不绘制左右范围
|
|
||||||
strShowTxt = "蝌蚪图";
|
|
||||||
}
|
|
||||||
if(this->m_strType == "plObject" || this->m_strType == "roseObject" || this->m_strType == "CrackObject")
|
if(this->m_strType == "plObject" || this->m_strType == "roseObject" || this->m_strType == "CrackObject")
|
||||||
{
|
{
|
||||||
strShowTxt = " ";
|
strShowTxt = " ";
|
||||||
|
|
|
||||||
|
|
@ -362,6 +362,12 @@ public:
|
||||||
int cpLineWidth() const;
|
int cpLineWidth() const;
|
||||||
void setCpLineWidth(int cpLineWidth);
|
void setCpLineWidth(int cpLineWidth);
|
||||||
|
|
||||||
|
//蝌蚪图
|
||||||
|
QString m_pl_GradCurve = "GRAD"; // 可信度曲线
|
||||||
|
float m_flGrad1,m_flGrad2; // 可信度
|
||||||
|
float m_nRadius,m_nCircleWidth; // 半径,圆线宽度
|
||||||
|
float m_nTailWidth,m_nTailLen; // 尾宽度、尾长
|
||||||
|
QColor m_crTail,m_crCircle;//颜色
|
||||||
public:
|
public:
|
||||||
void setLineWidth(double dWidth);
|
void setLineWidth(double dWidth);
|
||||||
double getLineWidth();
|
double getLineWidth();
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||||
//关联信号槽,打开项目
|
//关联信号槽,打开项目
|
||||||
connect(CallManage::getInstance(), SIGNAL(sig_Open()), this, SLOT(s_Open()));
|
connect(CallManage::getInstance(), SIGNAL(sig_Open()), this, SLOT(s_Open()));
|
||||||
//关联信号槽,关闭项目
|
//关联信号槽,关闭项目
|
||||||
connect(CallManage::getInstance(), SIGNAL(sig_CloseProject()), this, SLOT(s_CloseProject()));
|
//connect(CallManage::getInstance(), SIGNAL(sig_CloseProject()), this, SLOT(s_CloseProject()));
|
||||||
|
|
||||||
//参数卡
|
//参数卡
|
||||||
connect(CallManage::getInstance(), SIGNAL(sig_ShowParameterCard(QString, QString)), this, SLOT(s_ShowParameterCard(QString, QString)));
|
connect(CallManage::getInstance(), SIGNAL(sig_ShowParameterCard(QString, QString)), this, SLOT(s_ShowParameterCard(QString, QString)));
|
||||||
|
|
@ -216,6 +216,13 @@ void MainWindow::initTitleBar()
|
||||||
|
|
||||||
//
|
//
|
||||||
QMenu* m_projectMenu = this->menuBar()->addMenu(tr("工区管理(&F)"));
|
QMenu* m_projectMenu = this->menuBar()->addMenu(tr("工区管理(&F)"));
|
||||||
|
//添加子菜单
|
||||||
|
m_projectMenu->addAction(QIcon( ::GetImagePath() + "newproject.png"), tr("&新建项目"), this, SLOT(s_New()));
|
||||||
|
m_projectMenu->addAction(QIcon( ::GetImagePath() + "openprojectIcon.png"), tr("&打开项目"), this, SLOT(s_Open()));
|
||||||
|
m_projectMenu->addAction(QIcon( ::GetImagePath() + "closeprojectIcon.png"), tr("&关闭项目"), this, SLOT(s_CloseProject()));
|
||||||
|
m_projectMenu->addSeparator();
|
||||||
|
m_projectMenu->addAction(QIcon( ::GetImagePath() + "icon/Exit.png"), tr("&退出"), this, SLOT(slotExitSystem()));
|
||||||
|
|
||||||
//
|
//
|
||||||
QMenu* m_dataMenu = this->menuBar()->addMenu(tr("数据管理(&D)"));
|
QMenu* m_dataMenu = this->menuBar()->addMenu(tr("数据管理(&D)"));
|
||||||
//
|
//
|
||||||
|
|
@ -228,6 +235,11 @@ void MainWindow::initTitleBar()
|
||||||
QMenu* m_helpMenu = this->menuBar()->addMenu(tr("帮助(&H)"));
|
QMenu* m_helpMenu = this->menuBar()->addMenu(tr("帮助(&H)"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::slotExitSystem()
|
||||||
|
{
|
||||||
|
closeEvent(NULL);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//初始化工具栏
|
//初始化工具栏
|
||||||
void MainWindow::initToolBar()
|
void MainWindow::initToolBar()
|
||||||
|
|
@ -235,49 +247,23 @@ void MainWindow::initToolBar()
|
||||||
QSize toolIconSize(18, 18);
|
QSize toolIconSize(18, 18);
|
||||||
ui->mainToolBar->setIconSize(toolIconSize); //设置工具栏图标大小
|
ui->mainToolBar->setIconSize(toolIconSize); //设置工具栏图标大小
|
||||||
|
|
||||||
QIcon newprojectIcon(::GetImagePath()+"newproject.png");
|
|
||||||
QIcon openprojectIcon(::GetImagePath()+"openproject.png");
|
|
||||||
QIcon saveprojectIcon(::GetImagePath()+"saveproject.png");
|
|
||||||
//
|
|
||||||
QIcon wellogIcon(::GetImagePath()+"wellog.png");
|
|
||||||
QIcon outcurvesIcon(::GetImagePath()+"outcurves.png");
|
|
||||||
//
|
|
||||||
QIcon wellsectionwindowIcon(::GetImagePath()+"wellsectionwindow.png");
|
|
||||||
QIcon developmentIcon(::GetImagePath()+"development.png");
|
|
||||||
|
|
||||||
m_newprojectAc = new QAction(newprojectIcon, "新建项目", this);
|
|
||||||
m_openprojectAc = new QAction(openprojectIcon, "打开项目", this);
|
|
||||||
m_saveprojectAc = new QAction(saveprojectIcon, "保存项目", this);
|
|
||||||
m_wellsectionwindowAc = new QAction(wellsectionwindowIcon, "可视解释", this);
|
|
||||||
m_wellogAc = new QAction(wellogIcon, "数据导入", this);
|
|
||||||
m_outcurvesAc = new QAction(outcurvesIcon, "数据导出", this);
|
|
||||||
m_developmentAc = new QAction(developmentIcon, "开发工具", this);
|
|
||||||
|
|
||||||
|
//工具栏
|
||||||
ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //此种方式为文字显示在图标右侧
|
ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //此种方式为文字显示在图标右侧
|
||||||
|
|
||||||
//add QAction to Widget.
|
//add QAction to Widget.
|
||||||
ui->mainToolBar->addAction(m_newprojectAc);
|
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "newproject.png"), tr("&新建项目"), this, SLOT(s_New()));
|
||||||
ui->mainToolBar->addAction(m_openprojectAc);
|
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "openproject.png"), tr("&打开项目"), this, SLOT(s_Open()));
|
||||||
//ui->mainToolBar->addAction(m_saveprojectAc);
|
|
||||||
ui->mainToolBar->addSeparator();//添加分隔符
|
ui->mainToolBar->addSeparator();//添加分隔符
|
||||||
//
|
//
|
||||||
ui->mainToolBar->addAction(m_wellogAc);
|
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "wellog.png"), tr("&数据导入"), this, SLOT(s_wellog()));
|
||||||
ui->mainToolBar->addAction(m_outcurvesAc);
|
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "outcurves.png"), tr("&数据导出"), this, SLOT(s_outcurves()));
|
||||||
ui->mainToolBar->addSeparator();//添加分隔符
|
ui->mainToolBar->addSeparator();//添加分隔符
|
||||||
//
|
//
|
||||||
ui->mainToolBar->addAction(m_wellsectionwindowAc);
|
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "wellsectionwindow.png"), tr("&可视解释"), this, SLOT(s_showView()));
|
||||||
ui->mainToolBar->addAction(m_developmentAc);
|
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "development.png"), tr("&开发工具"), this, SLOT(s_development()));
|
||||||
|
|
||||||
connect(m_newprojectAc, &QAction::triggered, this, &MainWindow::s_New);
|
|
||||||
connect(m_openprojectAc, &QAction::triggered, this, &MainWindow::s_Open);
|
|
||||||
connect(m_saveprojectAc, &QAction::triggered, this, &MainWindow::s_SaveProject);
|
|
||||||
connect(m_wellsectionwindowAc, &QAction::triggered, this, &MainWindow::s_showView);
|
|
||||||
connect(m_developmentAc, &QAction::triggered, this, &MainWindow::s_development);
|
|
||||||
|
|
||||||
// connect(m_compileAc, &QAction::triggered, this, &MainWindow::s_AddOne);
|
|
||||||
// connect(m_runAc, &QAction::triggered, this, &MainWindow::s_SaveImage);
|
|
||||||
// connect(m_debugAc, &QAction::triggered, this, &MainWindow::s_DrawImg);
|
|
||||||
// connect(m_loadAc, &QAction::triggered, this, &MainWindow::s_DrawLine);
|
|
||||||
QTimer::singleShot(500, this, [=]() {
|
QTimer::singleShot(500, this, [=]() {
|
||||||
QString fileFull = GetProjectFolder() + "例子.wwl";
|
QString fileFull = GetProjectFolder() + "例子.wwl";
|
||||||
QFileInfo fileInfo(fileFull);
|
QFileInfo fileInfo(fileFull);
|
||||||
|
|
@ -584,13 +570,13 @@ void MainWindow::s_showView()
|
||||||
void MainWindow::s_development()
|
void MainWindow::s_development()
|
||||||
{
|
{
|
||||||
//暂时用作切换3d绘制波列图的切换按钮
|
//暂时用作切换3d绘制波列图的切换按钮
|
||||||
if(g_iSupport3D==0)
|
// if(g_iSupport3D==0)
|
||||||
{
|
// {
|
||||||
g_iSupport3D=1;
|
// g_iSupport3D=1;
|
||||||
}
|
// }
|
||||||
else {
|
// else {
|
||||||
g_iSupport3D=0;
|
// g_iSupport3D=0;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::s_Risize()
|
void MainWindow::s_Risize()
|
||||||
|
|
@ -636,16 +622,15 @@ void MainWindow::s_DrawLine()
|
||||||
|
|
||||||
void MainWindow::s_CloseProject()
|
void MainWindow::s_CloseProject()
|
||||||
{
|
{
|
||||||
if(m_centerWidgets)
|
|
||||||
{
|
|
||||||
int iCount = m_centerWidgets->count();
|
|
||||||
for(int i=0; i<iCount; i++)
|
|
||||||
{
|
|
||||||
m_centerWidgets->removeTab(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//关闭老项目
|
//关闭老项目
|
||||||
g_prjname="";
|
bool bClosed = closeProject();
|
||||||
|
if(!bClosed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//关闭
|
||||||
|
emit CallManage::getInstance()->sig_CloseProject();
|
||||||
}
|
}
|
||||||
|
|
||||||
//参数卡数据查看
|
//参数卡数据查看
|
||||||
|
|
|
||||||
|
|
@ -35,16 +35,6 @@ private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//工具栏
|
|
||||||
QAction* m_newprojectAc = nullptr; //新建
|
|
||||||
QAction* m_openprojectAc = nullptr; //打开
|
|
||||||
QAction* m_saveprojectAc = nullptr; //保存
|
|
||||||
//
|
|
||||||
QAction* m_wellogAc = nullptr; //数据导入
|
|
||||||
QAction* m_outcurvesAc = nullptr; //数据导出
|
|
||||||
QAction* m_wellsectionwindowAc = nullptr;//可视解释
|
|
||||||
QAction* m_developmentAc = nullptr; //开发工具
|
|
||||||
|
|
||||||
//停靠栏
|
//停靠栏
|
||||||
QStackedWidget *m_stackedWidget_Center = nullptr;//中间工作区stack
|
QStackedWidget *m_stackedWidget_Center = nullptr;//中间工作区stack
|
||||||
//QDockWidget *m_projectView = nullptr; //左侧工程区
|
//QDockWidget *m_projectView = nullptr; //左侧工程区
|
||||||
|
|
@ -80,6 +70,7 @@ public slots:
|
||||||
void s_Open();
|
void s_Open();
|
||||||
void s_SaveProject();
|
void s_SaveProject();
|
||||||
void s_CloseProject();
|
void s_CloseProject();
|
||||||
|
void slotExitSystem();
|
||||||
|
|
||||||
void s_Risize();
|
void s_Risize();
|
||||||
void s_AddOne();
|
void s_AddOne();
|
||||||
|
|
|
||||||
|
|
@ -9004,8 +9004,50 @@ bool QMyCustomPlot::getIsEditor()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//读取高导缝配置
|
||||||
|
void QMyCustomPlot::ReadFracDef_gaodaofeng()
|
||||||
|
{
|
||||||
|
m_FracDefList.clear();
|
||||||
|
FRAC_DEF fd;
|
||||||
|
//char path[MAX_PATH+1];
|
||||||
|
char str[512],name[512];
|
||||||
|
int r,g,b,id;
|
||||||
|
FILE *fp;
|
||||||
|
QString qs;
|
||||||
|
|
||||||
|
//sprintf(str,"%sconf\\FRAC.CFG",path);
|
||||||
|
// QString fracFilePath = GetConfPath() + "FRAC_New.CFG";
|
||||||
|
QString fracFilePath = GetConfPath() + "FRAC.CFG";
|
||||||
|
fp = fopen(fracFilePath.toStdString().c_str(),"r");
|
||||||
|
if ( fp !=NULL )
|
||||||
|
{
|
||||||
|
fgets(str,256,fp); // 跳过第一行
|
||||||
|
while (!feof(fp))
|
||||||
|
{
|
||||||
|
fgets(str,256,fp);
|
||||||
|
qs = str; qs.trimmed();
|
||||||
|
if (qs.length() < 8) break ;
|
||||||
|
//代码 名称 形状代码(1:正弦曲线 2:连线 3:封闭区域) 颜色(红 绿 蓝) 线宽度
|
||||||
|
sscanf(str,"%d %s %d %d %d %d %d",&fd.iCode, name, &fd.iType, &r, &g, &b, &fd.nLineWidth);
|
||||||
|
fd.crColor = QColor(r,g,b);//RGB(r,g,b);
|
||||||
|
fd.csName = name;
|
||||||
|
fd.csName = fd.csName.trimmed();//.Trim();
|
||||||
|
fd.bDraw = 0;
|
||||||
|
m_FracDefList.append(fd);
|
||||||
|
if ( feof(fp))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf(name,"打开裂缝参数配置文件错误:%s!",str);
|
||||||
|
QMessageBox::information(nullptr, "读取文件失败", name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//沉积相
|
//沉积相
|
||||||
void QMyCustomPlot::ReadFracDef()
|
void QMyCustomPlot::ReadFracDef_Fac()
|
||||||
{
|
{
|
||||||
m_FracDef.clear();
|
m_FracDef.clear();
|
||||||
|
|
||||||
|
|
@ -9256,7 +9298,7 @@ bool QMyCustomPlot::LoadFromSLF_Fac(QString strSlfName, QString csCurve, bool bA
|
||||||
m_qcpItemLine2->point2->setCoords(-2, 3*iMyWidth/4);//位置
|
m_qcpItemLine2->point2->setCoords(-2, 3*iMyWidth/4);//位置
|
||||||
}
|
}
|
||||||
|
|
||||||
ReadFracDef();
|
ReadFracDef_Fac();
|
||||||
|
|
||||||
ReadData_Fac(strSlfName, csCurve, bAdd);
|
ReadData_Fac(strSlfName, csCurve, bAdd);
|
||||||
DrawFac(1);//相
|
DrawFac(1);//相
|
||||||
|
|
@ -11093,6 +11135,7 @@ bool QMyCustomPlot::Refurbish()
|
||||||
bool flag = true;
|
bool flag = true;
|
||||||
if (m_bTableData)
|
if (m_bTableData)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
ReadData(m_strSlfName, "");
|
ReadData(m_strSlfName, "");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -11383,7 +11426,7 @@ void QMyCustomPlot::drawRose(bool bTableData, QString csCurveDDIR, QString csCur
|
||||||
|
|
||||||
if (m_bTableData)
|
if (m_bTableData)
|
||||||
{
|
{
|
||||||
ReadFracDef();
|
ReadFracDef_gaodaofeng();
|
||||||
for (int i = 0 ; i < iFracType ; i++)
|
for (int i = 0 ; i < iFracType ; i++)
|
||||||
{
|
{
|
||||||
m_bTypeDraw[i] = true;
|
m_bTypeDraw[i] = true;
|
||||||
|
|
@ -11744,3 +11787,327 @@ void QMyCustomPlot::vertScrollBarChanged(QString strUuid, int value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QMyCustomPlot::Draw_Kedou()
|
||||||
|
{
|
||||||
|
if (m_bTableData)
|
||||||
|
{
|
||||||
|
ReadFracDef_gaodaofeng();
|
||||||
|
for (int i = 0 ; i < iFracType ; i++)
|
||||||
|
{
|
||||||
|
m_bTypeDraw[i] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
m_qsDIR="DDIR"; // 方位 曲线名
|
||||||
|
m_qsDIP="DANG";//倾角
|
||||||
|
m_qsDepth="DEPT";
|
||||||
|
m_qsID = "ID";
|
||||||
|
ReadData(m_strSlfName, m_strLineName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//
|
||||||
|
m_csCurveDDIR = "DDIR"; // 方位 曲线名
|
||||||
|
m_csCurveDANG = "DANG";//倾角
|
||||||
|
m_csCurveGrad = "GRAD";
|
||||||
|
this->ReadData(m_strSlfName, m_csCurveDDIR, 0, &m_Curve);
|
||||||
|
this->ReadData(m_strSlfName, m_csCurveDANG, 1, &m_Curve2);
|
||||||
|
this->ReadData(m_strSlfName, m_csCurveGrad, 2, &m_Curve3);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_bTableData)
|
||||||
|
{
|
||||||
|
this->DrawTabDip_Kedou();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->DrawDip_Kedou();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QMyCustomPlot::CalcDipWidth(int nColumn,float *flWidth,float factor,int x1,int x2,float flHoriRatio)
|
||||||
|
{
|
||||||
|
float scale ;
|
||||||
|
int k;
|
||||||
|
|
||||||
|
scale = flWidth[0]=1.;
|
||||||
|
for(k=1;k<nColumn;k++)
|
||||||
|
{
|
||||||
|
flWidth[k] = flWidth[k-1] / factor;
|
||||||
|
scale += flWidth[k];
|
||||||
|
}
|
||||||
|
scale = /*100. **/flHoriRatio*(x2 - x1) / scale;
|
||||||
|
for(k=0;k<nColumn;k++)
|
||||||
|
{
|
||||||
|
flWidth[k] = flWidth[k] * scale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QMyCustomPlot::DrawTabDip_Kedou()
|
||||||
|
{
|
||||||
|
float flDepthScale,tempf,flVal;
|
||||||
|
int i,j,n,nPointNum=0,tempi;
|
||||||
|
QRectF rt,rtRect;
|
||||||
|
float x,y;
|
||||||
|
float dgtord,dr;
|
||||||
|
float flWidth[50];
|
||||||
|
FRAC_TABLE frac;
|
||||||
|
bool bDraw;
|
||||||
|
FRAC_DEF fd;
|
||||||
|
if(m_iPrecision<0) m_iPrecision=0;//小数位数
|
||||||
|
|
||||||
|
nPointNum = m_FracTabList.count();
|
||||||
|
if ( nPointNum < 1 )return ;
|
||||||
|
|
||||||
|
dgtord=3.14159265/180.;
|
||||||
|
//
|
||||||
|
m_nCircleWidth = 1;
|
||||||
|
m_nRadius = 6;
|
||||||
|
m_crCircle = QColor(0,0,0);
|
||||||
|
//
|
||||||
|
m_nTailWidth = 2;
|
||||||
|
m_nTailLen = 10;
|
||||||
|
m_crTail = QColor(0,0,0);
|
||||||
|
|
||||||
|
int iMyWidth = this->axisRect(0)->width(); //setSizeConstraintRect()
|
||||||
|
int iMyHeight = this->axisRect(0)->height(); //setSizeConstraintRect()
|
||||||
|
qDebug() << "iMyWidth=" << QString::number(iMyWidth) << ", iMyHeight=" << QString::number(iMyHeight);
|
||||||
|
|
||||||
|
//-----------
|
||||||
|
int l;
|
||||||
|
float x1 = 0;
|
||||||
|
float x2 = iMyWidth;
|
||||||
|
float flTemp=0;
|
||||||
|
for(int i=0;i<50;i++) flWidth[i]=0;
|
||||||
|
int m_nScaleThinGrid=10;
|
||||||
|
CalcDipWidth(m_nScaleThinGrid, flWidth, 1.2, x1, x2, 1.);
|
||||||
|
//绘制网格线,注意颜色、宽度属性
|
||||||
|
QPen pPenStraightLine(m_crTail, m_nTailWidth);
|
||||||
|
QPen pPenStraightLineSmall(m_crGridSmall, m_nTailWidth/2);
|
||||||
|
for(i=0;i<m_nScaleThinGrid;i++)
|
||||||
|
{
|
||||||
|
if ( i == 0 ) x =1;
|
||||||
|
else x = x1;
|
||||||
|
x1 = x + flWidth[i];
|
||||||
|
if ( (x1-x) <= 7) {
|
||||||
|
l = 2; // 小于1厘米
|
||||||
|
}
|
||||||
|
else l = 5;
|
||||||
|
for ( j=0; j<l; j++)
|
||||||
|
{
|
||||||
|
flTemp = (x + j*(x1 - x)/l);
|
||||||
|
double dtick=flTemp;
|
||||||
|
if(i==0&&j==0) continue;
|
||||||
|
{
|
||||||
|
QCPItemStraightLine *qcpItemLine = new QCPItemStraightLine(this);
|
||||||
|
qcpItemLine->point1->setCoords(-m_iY2, dtick);//位置
|
||||||
|
qcpItemLine->point2->setCoords(-m_iY1, dtick);//位置
|
||||||
|
if(j==0)
|
||||||
|
{
|
||||||
|
qcpItemLine->setPen(pPenStraightLine);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qcpItemLine->setPen(pPenStraightLineSmall);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CalcDipWidth(9,flWidth, 1.2, 0, iMyWidth, 1.);
|
||||||
|
|
||||||
|
n = m_FracDefList.count();
|
||||||
|
for (i=0; i<nPointNum; i++)
|
||||||
|
{
|
||||||
|
frac = m_FracTabList.at(i);
|
||||||
|
//
|
||||||
|
bool bDraw = false;
|
||||||
|
for (int j=0; j<n; j++)
|
||||||
|
{
|
||||||
|
const FRAC_DEF& fd = m_FracDefList.at(j);
|
||||||
|
if ( (int)(frac.ID) == fd.iCode)
|
||||||
|
{
|
||||||
|
bDraw = m_bTypeDraw[j];//fd.bDraw;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(bDraw)
|
||||||
|
{
|
||||||
|
QBrush cBrush(fd.crColor);
|
||||||
|
//圆圈
|
||||||
|
QPen pPen(m_crCircle);
|
||||||
|
pPen.setWidth(m_nCircleWidth);
|
||||||
|
|
||||||
|
//尾巴
|
||||||
|
QPen pPenTail(m_crTail);
|
||||||
|
pPenTail.setWidth(m_nTailWidth);
|
||||||
|
|
||||||
|
// 角度
|
||||||
|
flVal = frac.DIPorS;
|
||||||
|
tempf = flVal /10.;
|
||||||
|
tempi = tempf;
|
||||||
|
x = fmod(flVal,(float)(10.));
|
||||||
|
if ( x == 0 )
|
||||||
|
{
|
||||||
|
tempi=0;//tempi --;
|
||||||
|
}
|
||||||
|
tempf = 0.;
|
||||||
|
for (j=0; j<tempi; j++)
|
||||||
|
tempf += flWidth[j];
|
||||||
|
x = tempf+(flVal-tempi*10.)*(flWidth[tempi]/10.);
|
||||||
|
y = -frac.DEP;
|
||||||
|
//
|
||||||
|
QCPItemEllipse *qcpItemEllipse = new QCPItemEllipse(this);
|
||||||
|
qcpItemEllipse->setPen(pPen);
|
||||||
|
qcpItemEllipse->m_bCustom = true;
|
||||||
|
qcpItemEllipse->m_nRadius = m_nRadius;
|
||||||
|
qcpItemEllipse->topLeft->setCoords(y, x);//圆心位置
|
||||||
|
qcpItemEllipse->bottomRight->setCoords(y, x);//圆心位置
|
||||||
|
qcpItemEllipse->setBrush(cBrush);//填充圆的颜色
|
||||||
|
|
||||||
|
//方位
|
||||||
|
dr=frac.DIR *dgtord;
|
||||||
|
//
|
||||||
|
QCPItemLine *qcpItemLine = new QCPItemLine(this);
|
||||||
|
qcpItemLine->start->setCoords(y, x);//圆心位置
|
||||||
|
qcpItemLine->end->setCoords(y, x);//圆心位置
|
||||||
|
qcpItemLine->setPen(pPenTail);
|
||||||
|
qcpItemLine->m_bCustom = true;
|
||||||
|
qcpItemLine->m_nTailLen = m_nTailLen; //尾长
|
||||||
|
qcpItemLine->m_nRadius = m_nRadius; //半径
|
||||||
|
qcpItemLine->m_dr = dr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QMyCustomPlot::DrawDip_Kedou()
|
||||||
|
{
|
||||||
|
float flWidth[50];
|
||||||
|
int l;
|
||||||
|
float dep;
|
||||||
|
int m_nScaleThinGrid=10;
|
||||||
|
// 计算位置
|
||||||
|
int iMyWidth = this->axisRect(0)->width();
|
||||||
|
float x1 = 0;
|
||||||
|
float x2 = iMyWidth;
|
||||||
|
float x=0,y=0;
|
||||||
|
int j=0,i=0,k=0;
|
||||||
|
float flTemp=0;
|
||||||
|
for(int i=0;i<50;i++) flWidth[i]=0;
|
||||||
|
CalcDipWidth(m_nScaleThinGrid, flWidth, 1.2, x1, x2, 1.);
|
||||||
|
|
||||||
|
//绘制网格线,注意颜色、宽度属性
|
||||||
|
QPen pPenStraightLine(m_crTail, m_nTailWidth);
|
||||||
|
QPen pPenStraightLineSmall(m_crGridSmall, m_nTailWidth/2);
|
||||||
|
for(i=0;i<m_nScaleThinGrid;i++)
|
||||||
|
{
|
||||||
|
if ( i == 0 ) x =1;
|
||||||
|
else x = x1;
|
||||||
|
x1 = x + flWidth[i];
|
||||||
|
if ( (x1-x) <= 7) {
|
||||||
|
l = 2; // 小于1厘米
|
||||||
|
}
|
||||||
|
else l = 5;
|
||||||
|
for ( j=0; j<l; j++)
|
||||||
|
{
|
||||||
|
flTemp = (x + j*(x1 - x)/l);
|
||||||
|
double dtick=flTemp;
|
||||||
|
if(i==0&&j==0) continue;
|
||||||
|
{
|
||||||
|
QCPItemStraightLine *qcpItemLine = new QCPItemStraightLine(this);
|
||||||
|
qcpItemLine->point1->setCoords(-m_SDep, dtick);//位置
|
||||||
|
qcpItemLine->point2->setCoords(-m_EDep, dtick);//位置
|
||||||
|
if(j==0)
|
||||||
|
{
|
||||||
|
qcpItemLine->setPen(pPenStraightLine);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qcpItemLine->setPen(pPenStraightLineSmall);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QPen pPen(m_crTail,m_nTailWidth);
|
||||||
|
QBrush cBrushFill(m_crPointFill);
|
||||||
|
|
||||||
|
float flDepthScale,tempf,flVal;
|
||||||
|
int nPointNum=0,tempi;
|
||||||
|
QRectF rt,rtRect;
|
||||||
|
float dgtord,dr;
|
||||||
|
for(int i=0;i<50;i++) flWidth[i]=0;
|
||||||
|
if(m_Value==0 || m_Value2==0)
|
||||||
|
{
|
||||||
|
Refurbish();
|
||||||
|
}
|
||||||
|
if ( m_Value==0 || m_Value2==0 )
|
||||||
|
return ;
|
||||||
|
|
||||||
|
dgtord=3.14159265/180.;
|
||||||
|
|
||||||
|
CalcDipWidth(9, flWidth, 1.2, 0, iMyWidth, 1);
|
||||||
|
|
||||||
|
|
||||||
|
while ( 1)
|
||||||
|
{
|
||||||
|
dep = m_SDep + k * m_Rlev;
|
||||||
|
if ( dep >m_EDep )
|
||||||
|
break;
|
||||||
|
|
||||||
|
if(dep<m_SDep)
|
||||||
|
{
|
||||||
|
k++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
i=(dep-m_Curve2.StartDepth)/m_Curve2.DepLevel+0.5;
|
||||||
|
if(i<0)
|
||||||
|
{
|
||||||
|
k++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
flVal = GetData(m_Curve2.RepCode,(char *)&m_Value2[i*m_Curve2.CodeLen]);//DANG
|
||||||
|
if ( flVal > m_flGrad2 || flVal < m_flGrad1 )
|
||||||
|
{
|
||||||
|
k++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
tempi = (int)( flVal /10.);
|
||||||
|
|
||||||
|
tempf = 0.;
|
||||||
|
for (j=0; j<tempi; j++)
|
||||||
|
{
|
||||||
|
tempf += flWidth[j];
|
||||||
|
}
|
||||||
|
x = tempf + (flVal-tempi*10.)*(flWidth[j+1]/10.);
|
||||||
|
y = -dep;//起始深度
|
||||||
|
|
||||||
|
//
|
||||||
|
QCPItemEllipse *qcpItemEllipse = new QCPItemEllipse(this);
|
||||||
|
qcpItemEllipse->setPen(pPen);
|
||||||
|
qcpItemEllipse->m_bCustom = true;
|
||||||
|
qcpItemEllipse->m_nRadius = m_nRadius;
|
||||||
|
qcpItemEllipse->topLeft->setCoords(y, x);//圆心位置
|
||||||
|
qcpItemEllipse->bottomRight->setCoords(y, x);//圆心位置
|
||||||
|
qcpItemEllipse->setBrush(cBrushFill);//填充圆的颜色
|
||||||
|
|
||||||
|
//方位
|
||||||
|
flVal = GetData(m_Curve.RepCode,(char *)&m_Value[i*m_Curve.CodeLen]);//DDIR
|
||||||
|
dr=flVal*dgtord;
|
||||||
|
//
|
||||||
|
QCPItemLine *qcpItemLine = new QCPItemLine(this);
|
||||||
|
qcpItemLine->start->setCoords(y, x);//圆心位置
|
||||||
|
qcpItemLine->end->setCoords(y, x);//圆心位置
|
||||||
|
qcpItemLine->setPen(pPen);
|
||||||
|
qcpItemLine->m_bCustom = true;
|
||||||
|
qcpItemLine->m_nTailLen = m_nTailLen; //尾长
|
||||||
|
qcpItemLine->m_nRadius = m_nRadius; //半径
|
||||||
|
qcpItemLine->m_dr = dr;
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ struct Slf_JIEGUPOS {
|
||||||
char Dest[64];
|
char Dest[64];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//沉积相
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
int iCode; //代码
|
int iCode; //代码
|
||||||
|
|
@ -34,7 +35,6 @@ typedef struct
|
||||||
QString Phase; //亚相
|
QString Phase; //亚相
|
||||||
QString mFac; //微相
|
QString mFac; //微相
|
||||||
}FAC_DEF;
|
}FAC_DEF;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
int no;
|
int no;
|
||||||
|
|
@ -46,6 +46,29 @@ typedef struct
|
||||||
char Dest[32];
|
char Dest[32];
|
||||||
}FAC_TABLE;
|
}FAC_TABLE;
|
||||||
|
|
||||||
|
//蝌蚪图
|
||||||
|
typedef struct FRACDEF
|
||||||
|
{
|
||||||
|
int iCode; //代码
|
||||||
|
QString csName; // 名称
|
||||||
|
int iType; //形状代码(1:正弦曲线 2:连线 3:封闭区域)
|
||||||
|
QColor crColor; //颜色(红 绿 蓝)
|
||||||
|
int nLineWidth; //线宽度
|
||||||
|
int bDraw; // 是否显示
|
||||||
|
}FRAC_DEF;
|
||||||
|
typedef struct FRACTABLE
|
||||||
|
{
|
||||||
|
float DEP; //深度
|
||||||
|
float AorX;
|
||||||
|
float XETAorH;
|
||||||
|
float W;
|
||||||
|
float DIPorS; //倾角
|
||||||
|
float DIR; //方位
|
||||||
|
float ID; //裂缝代码/可信度
|
||||||
|
float NUM;
|
||||||
|
float X[16],Y[16];//X0,Y0,X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5,X6,Y6,X7,Y7,X8,Y8,X9,Y9;
|
||||||
|
}FRAC_TABLE;
|
||||||
|
|
||||||
class FormTrack;
|
class FormTrack;
|
||||||
class FormDraw;
|
class FormDraw;
|
||||||
class TransparentGroupResult;
|
class TransparentGroupResult;
|
||||||
|
|
@ -338,14 +361,14 @@ public:
|
||||||
bool m_bDrawFac = true; // 绘制相
|
bool m_bDrawFac = true; // 绘制相
|
||||||
bool m_bDrawPhase = true; // 绘制亚相
|
bool m_bDrawPhase = true; // 绘制亚相
|
||||||
bool m_bDrawMFacName = true; // 微相名称
|
bool m_bDrawMFacName = true; // 微相名称
|
||||||
void ReadFracDef();
|
void ReadFracDef_Fac();
|
||||||
void ReadData_Fac(QString strSlfName, QString csCurve, bool bAdd=true);
|
void ReadData_Fac(QString strSlfName, QString csCurve, bool bAdd=true);
|
||||||
void DrawFac(int iType);
|
void DrawFac(int iType);
|
||||||
bool LoadFromSLF_Fac(QString strSlfName, QString csCurve, bool bAdd=true);
|
bool LoadFromSLF_Fac(QString strSlfName, QString csCurve, bool bAdd=true);
|
||||||
//保存
|
//保存
|
||||||
void SaveToSLF_Fac();
|
void SaveToSLF_Fac();
|
||||||
|
|
||||||
//套管組件
|
//套管组件
|
||||||
bool m_bDrawStruct_Tubing = true; //绘制结构
|
bool m_bDrawStruct_Tubing = true; //绘制结构
|
||||||
bool m_bDrawTubing_Tubing = true; //绘制管柱
|
bool m_bDrawTubing_Tubing = true; //绘制管柱
|
||||||
bool m_bDrawTools_Tubing = true; //绘制工具
|
bool m_bDrawTools_Tubing = true; //绘制工具
|
||||||
|
|
@ -669,32 +692,8 @@ public:
|
||||||
|
|
||||||
virtual void contextMenuEvent(QContextMenuEvent *event);
|
virtual void contextMenuEvent(QContextMenuEvent *event);
|
||||||
|
|
||||||
|
QList<FRAC_TABLE> m_FracTabList;
|
||||||
|
QList<FRAC_DEF> m_FracDefList;// 高导缝...
|
||||||
typedef struct FRACTABLE
|
|
||||||
{
|
|
||||||
float DEP; //深度
|
|
||||||
float AorX;
|
|
||||||
float XETAorH;
|
|
||||||
float W;
|
|
||||||
float DIPorS; //倾角
|
|
||||||
float DIR; //方位
|
|
||||||
float ID; //裂缝代码/可信度
|
|
||||||
float NUM;
|
|
||||||
float X[16],Y[16];//X0,Y0,X1,Y1,X2,Y2,X3,Y3,X4,Y4,X5,Y5,X6,Y6,X7,Y7,X8,Y8,X9,Y9;
|
|
||||||
}FRAC_TABLE;
|
|
||||||
//蝌蚪图
|
|
||||||
typedef struct FRACDEF
|
|
||||||
{
|
|
||||||
int iCode; //代码
|
|
||||||
QString csName; // 名称
|
|
||||||
int iType; //形状代码(1:正弦曲线 2:连线 3:封闭区域)
|
|
||||||
QColor crColor; //颜色(红 绿 蓝)
|
|
||||||
int nLineWidth; //线宽度
|
|
||||||
int bDraw; // 是否显示
|
|
||||||
}FRAC_DEF;
|
|
||||||
QList<FRAC_TABLE> m_FracTabList; // --
|
|
||||||
QList<FRAC_DEF> m_FracDefList;
|
|
||||||
bool m_bTypeDraw[iFracType]; // --
|
bool m_bTypeDraw[iFracType]; // --
|
||||||
int m_bTableData = 0;
|
int m_bTableData = 0;
|
||||||
QString m_csCurveDDIR,m_csCurveDANG,m_csCurveGrad;
|
QString m_csCurveDDIR,m_csCurveDANG,m_csCurveGrad;
|
||||||
|
|
@ -729,6 +728,22 @@ public:
|
||||||
bool m_rose_fill_enabled, bool m_rose_draw_annotation, int nstep, float m_LeftVal, float m_RightVal);
|
bool m_rose_fill_enabled, bool m_rose_draw_annotation, int nstep, float m_LeftVal, float m_RightVal);
|
||||||
|
|
||||||
void addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, const QPointF& p1, const QPointF& p2, const QPen& wPen);
|
void addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, const QPointF& p1, const QPointF& p2, const QPen& wPen);
|
||||||
|
|
||||||
|
//蝌蚪
|
||||||
|
float m_LeftVal2,m_RightVal2; //最小倾角、最大倾角
|
||||||
|
float m_flGrad1,m_flGrad2; // 可信度
|
||||||
|
int m_iPrecision; //小数位数
|
||||||
|
float m_nRadius,m_nCircleWidth; // 半径,圆线宽度
|
||||||
|
float m_nTailWidth,m_nTailLen; // 尾宽度、尾长
|
||||||
|
QColor m_crPointFill,m_crTail,m_crCircle;//颜色
|
||||||
|
QColor m_crGridSmall; //
|
||||||
|
void CalcDipWidth(int nColumn,float *flWidth,float factor,int x1,int x2,float flHoriRatio);
|
||||||
|
void Draw_Kedou();
|
||||||
|
void DrawDip_Kedou();
|
||||||
|
void DrawTabDip_Kedou();
|
||||||
|
|
||||||
|
void ReadFracDef_gaodaofeng();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,9 @@ QtProjectWidgets::QtProjectWidgets(QWidget *parent)
|
||||||
connect(CallManage::getInstance(), SIGNAL(sig_NewProject()), this, SLOT(s_NewProject()));
|
connect(CallManage::getInstance(), SIGNAL(sig_NewProject()), this, SLOT(s_NewProject()));
|
||||||
//关联信号槽,打开评估工程
|
//关联信号槽,打开评估工程
|
||||||
connect(CallManage::getInstance(), SIGNAL(sig_OpenProject(QString)), this, SLOT(s_OpenProject(QString)));
|
connect(CallManage::getInstance(), SIGNAL(sig_OpenProject(QString)), this, SLOT(s_OpenProject(QString)));
|
||||||
|
//关联信号槽,关闭项目
|
||||||
|
connect(CallManage::getInstance(), SIGNAL(sig_CloseProject()), this, SLOT(s_CloseProject()));
|
||||||
|
|
||||||
//向左侧树图,追加固井结论表格
|
//向左侧树图,追加固井结论表格
|
||||||
connect(CallManage::getInstance(), SIGNAL(sig_AddGujingToTree(QString,QString,QString)), this, SLOT(s_AddGujingToTree(QString,QString,QString)));
|
connect(CallManage::getInstance(), SIGNAL(sig_AddGujingToTree(QString,QString,QString)), this, SLOT(s_AddGujingToTree(QString,QString,QString)));
|
||||||
|
|
||||||
|
|
@ -1081,6 +1084,11 @@ void QtProjectWidgets::s_OpenProject(QString fileFull)
|
||||||
s_loadTreeWidget(fileFull);
|
s_loadTreeWidget(fileFull);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QtProjectWidgets::s_CloseProject()
|
||||||
|
{
|
||||||
|
ui->treeWidget->clear();//清理数据
|
||||||
|
}
|
||||||
|
|
||||||
//参数表数据查看
|
//参数表数据查看
|
||||||
void QtProjectWidgets::onShowParameterCard(bool checked)
|
void QtProjectWidgets::onShowParameterCard(bool checked)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ public slots:
|
||||||
//
|
//
|
||||||
void s_NewProject(); //新建项目
|
void s_NewProject(); //新建项目
|
||||||
void s_OpenProject(QString fileFull); //打开项目
|
void s_OpenProject(QString fileFull); //打开项目
|
||||||
|
void s_CloseProject(); //关闭项目
|
||||||
//参数表
|
//参数表
|
||||||
void onShowParameterCard(bool checked = false);//数据查看
|
void onShowParameterCard(bool checked = false);//数据查看
|
||||||
//曲线
|
//曲线
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user