Merge branch 'main' of http://git.hivekion.com:3000/jiayulong/logplus
This commit is contained in:
commit
561c4b6873
|
|
@ -265,6 +265,16 @@ signals:
|
|||
|
||||
//改变蝌蚪图属性
|
||||
void sig_changeKedouProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
|
||||
|
||||
//改变杆状图属性
|
||||
void sig_changeGanzhuangProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
|
||||
|
||||
//改变井眼垮塌矢量图属性
|
||||
void sig_changeJyktProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
|
||||
|
||||
//改变井斜方位图属性
|
||||
void sig_changeDenvProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
|
||||
|
||||
//
|
||||
//void sig_addImageToPlot(QMyCustomPlot* customPlot, double left_Low, double right_Hight, QString imagePath);
|
||||
|
||||
|
|
|
|||
1234
logPlus/PickFrac.cpp
1234
logPlus/PickFrac.cpp
File diff suppressed because it is too large
Load Diff
|
|
@ -2,75 +2,194 @@
|
|||
#define DrawFrac_H
|
||||
|
||||
#include <QObject>
|
||||
#include "qmycustomplot.h"
|
||||
#include <QColor>
|
||||
#include <QList>
|
||||
#include <QVector>
|
||||
#include <QPointer>
|
||||
#include <QPointF>
|
||||
|
||||
//裂缝
|
||||
//const int iFracType=15;
|
||||
class QMyCustomPlot;
|
||||
class QCustomPlot;
|
||||
class QCPItemCurve;
|
||||
class QCPItemTracer;
|
||||
class QCPItemLine;
|
||||
class QCPCurve;
|
||||
class QCPItemText;
|
||||
|
||||
typedef struct tagPOINTF
|
||||
{
|
||||
float x;
|
||||
float y;
|
||||
} POINTF;
|
||||
static const int iFracType2 = 15;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int iCode; //代码
|
||||
QString csName;// 名称
|
||||
int iType; //形状代码(1:正弦曲线 2:连线 3:封闭区域)
|
||||
QColor crColor; //颜色(红 绿 蓝)
|
||||
int nLineWidth;//线宽度
|
||||
int bDraw; // 是否显示
|
||||
}FRAC_DEF_Crack;
|
||||
typedef struct tagPOINTF { float x; float y; } POINTF;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
float DEP;
|
||||
float AorX; //XRMI_DYN_DipHeight
|
||||
float XETAorH;//XRMI_DYN_Azimuth
|
||||
float W;
|
||||
float DIPorS;//XRMI_DYN_Dip_APP
|
||||
float DIR;//XRMI_DYN_Azimuth
|
||||
float TDIP; //真倾角 Dip_TRU
|
||||
float TDIR; //真倾向 Azimuth
|
||||
float ID;//裂缝代码,type
|
||||
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;
|
||||
POINTF point[16];
|
||||
}FRAC_TABLE_Crack;
|
||||
typedef struct {
|
||||
int iCode;
|
||||
QString csName;
|
||||
int iType; // 1:正弦曲线 2:连线 3:封闭区域 4:直线
|
||||
QColor crColor;
|
||||
int nLineWidth;
|
||||
int bDraw;
|
||||
} FRAC_DEF_Crack;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
typedef struct {
|
||||
float DEP;
|
||||
float AorX;
|
||||
float XETAorH;
|
||||
float W;
|
||||
float DIPorS;
|
||||
float DIR;
|
||||
float ID;//裂缝代码
|
||||
}FRAC_TABLE_OLD_Crack;
|
||||
float TDIP;
|
||||
float TDIR;
|
||||
float ID;
|
||||
float NUM;
|
||||
POINTF point[16];
|
||||
} FRAC_TABLE_Crack;
|
||||
|
||||
typedef struct {
|
||||
float DEP;
|
||||
float AorX;
|
||||
float XETAorH;
|
||||
float W;
|
||||
float DIPorS;
|
||||
float DIR;
|
||||
float ID;
|
||||
} FRAC_TABLE_OLD_Crack;
|
||||
|
||||
class DraggableCrackItem;
|
||||
|
||||
class CPickFrac : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
class CPickFrac:public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CPickFrac(QMyCustomPlot *widget, QString strSlfName, QString csCurve, int iMyWidth);
|
||||
virtual ~CPickFrac(void);
|
||||
virtual ~CPickFrac();
|
||||
|
||||
void setDraggingEnabled(bool enabled);
|
||||
QList<DraggableCrackItem*> getAllItems() const { return m_items; }
|
||||
bool saveToFile();
|
||||
bool createNewCrack(int iType, double depth);
|
||||
|
||||
public:
|
||||
QString m_Name;
|
||||
QString m_strDevi, m_strHazi;
|
||||
QList <FRAC_DEF_Crack> m_FracDef;
|
||||
bool m_bTypeDraw[iFracType];
|
||||
|
||||
QMyCustomPlot *m_myCustomPlot;
|
||||
int m_iMyWidth=0;
|
||||
public:
|
||||
int m_iMyWidth = 0;
|
||||
QList<FRAC_DEF_Crack> m_FracDef;
|
||||
bool m_bTypeDraw[iFracType2];
|
||||
|
||||
void ReadFracDef();
|
||||
void ReadData(QString strSlfName, QString csCurve);
|
||||
void drawOne(FRAC_TABLE_Crack frac, QString cs, int iType, int nLineWidth, QColor crColor);
|
||||
void drawOne(FRAC_TABLE_Crack frac, int iType, int nLineWidth, QColor crColor);
|
||||
|
||||
public slots:
|
||||
protected:
|
||||
bool eventFilter(QObject *watched, QEvent *event) override;
|
||||
|
||||
private slots:
|
||||
void onRemoveCrackItem(DraggableCrackItem *item);
|
||||
|
||||
private:
|
||||
QList<DraggableCrackItem*> m_items;
|
||||
bool m_draggingEnabled = true;
|
||||
QString m_currentSlfName;
|
||||
QString m_currentTableName;
|
||||
};
|
||||
|
||||
// ========== 可拖拽裂缝项 ==========
|
||||
class DraggableCrackItem : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum Type { TypeA_Sine, TypeB_Polyline, TypeC_Closed };
|
||||
DraggableCrackItem(QCustomPlot *plot, Type type, const QColor &color, int lineWidth);
|
||||
~DraggableCrackItem();
|
||||
|
||||
void setSineData(double depth, double amplitude, double phase, double xScale, double width);
|
||||
void setPolylineData(const QVector<QPointF> &points, double scaleX = 1.0, double flipY = -1.0);
|
||||
void setClosedData(const QVector<QPointF> &points, double scaleX = 1.0, double flipY = -1.0);
|
||||
void setVisible(bool visible);
|
||||
void deactivate();
|
||||
bool eventFilter(QObject *obj, QEvent *event) override;
|
||||
|
||||
// 保存接口
|
||||
Type getType() const { return m_type; }
|
||||
void setCrackCode(int code) { m_crackCode = code; }
|
||||
int getCrackCode() const { return m_crackCode; }
|
||||
double getDepthForSort() const;
|
||||
void getCurrentFracData(FRAC_TABLE_Crack &data) const;
|
||||
|
||||
// 编辑模式
|
||||
void startEditing();
|
||||
void finishEditing();
|
||||
|
||||
// 控制所有拖拽点的可见性
|
||||
void setDragPointsVisible(bool visible);
|
||||
|
||||
// 获取当前激活的item(静态)
|
||||
static DraggableCrackItem* getActiveItem() { return s_activeItem; }
|
||||
|
||||
void cleanupFromPlot(); // 立即从画布移除所有图形项
|
||||
|
||||
signals:
|
||||
void dataChanged();
|
||||
void removeMe(DraggableCrackItem* item);
|
||||
|
||||
private:
|
||||
QCustomPlot *m_plot;
|
||||
Type m_type;
|
||||
QColor m_color;
|
||||
int m_lineWidth;
|
||||
int m_crackCode = 0;
|
||||
double m_originalXETAorH = 0.0;
|
||||
double m_originalAorX = 0.0;
|
||||
|
||||
// 模式A
|
||||
QCPItemCurve *m_curve = nullptr;
|
||||
QCPItemTracer *m_tracer1 = nullptr, *m_tracer2 = nullptr;
|
||||
double m_orig_x1, m_orig_x2, m_orig_y1, m_orig_y2;
|
||||
double m_orig_startX, m_orig_endX, m_orig_startDirX, m_orig_startDirY, m_orig_endDirX, m_orig_endDirY;
|
||||
double m_offsetXA = 0.0, m_offsetYA = 0.0;
|
||||
double m_depth = 0.0, m_endX = 0.0;
|
||||
enum DragStateA { IdleA, DraggingPoint1, DraggingPoint2, DraggingCurveA } m_dragStateA = IdleA;
|
||||
QPointF m_lastDragPixelA;
|
||||
|
||||
// 模式B
|
||||
struct LineItem {
|
||||
QCPItemLine *line;
|
||||
QCPItemTracer *startTracer, *endTracer;
|
||||
QPointF startOrig, endOrig;
|
||||
};
|
||||
QList<LineItem> m_lines;
|
||||
double m_offsetXB = 0.0, m_offsetYB = 0.0;
|
||||
bool m_isAddingLine = false;
|
||||
QPointF m_tempPoint;
|
||||
enum DragStateB { IdleB, DraggingStartPoint, DraggingEndPoint, DraggingLineOverall } m_dragStateB = IdleB;
|
||||
QPointF m_bDragStart;
|
||||
int m_draggedLineIndex = -1;
|
||||
|
||||
// 模式C
|
||||
QCPCurve *m_curveC = nullptr;
|
||||
QVector<QPointF> m_pointsC;
|
||||
QVector<QCPItemText*> m_labelsC;
|
||||
double m_offsetXC = 0.0, m_offsetYC = 0.0;
|
||||
bool m_cFinished = false, m_cDragging = false, m_draggingPoint = false;
|
||||
int m_draggedPointIndex = -1;
|
||||
QPointF m_cDragStart;
|
||||
|
||||
// 编辑模式标志
|
||||
bool m_editingMode = false;
|
||||
|
||||
// 删除安全标志
|
||||
bool m_pendingDelete = false;
|
||||
|
||||
// 辅助函数
|
||||
void updateCurveFromTargets();
|
||||
void updateCurvePosition();
|
||||
void updateTracers();
|
||||
void setTracerHighlight(QCPItemTracer *tracer, bool highlight);
|
||||
void updateLineEndpoints(LineItem &item);
|
||||
void updateLinesPosition();
|
||||
void clearLines();
|
||||
void updatePolylineC(bool closed);
|
||||
void clearPolylineC();
|
||||
|
||||
static QPointer<DraggableCrackItem> s_activeItem;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -620,7 +620,7 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
|
|||
|
||||
if("道名称" == m_propertyData[pProperty])
|
||||
{
|
||||
m_fromTop->m_strTrackName = variant.toString();
|
||||
m_fromTop->setTrackName(variant.toString());
|
||||
}
|
||||
else if("道头字体" == m_propertyData[pProperty])
|
||||
{
|
||||
|
|
@ -2371,8 +2371,27 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
|
|||
//
|
||||
changedKedouProperty(m_propertyData[pProperty], variant);
|
||||
}
|
||||
|
||||
|
||||
else if (m_strCurrentProperty == Ganzhuang_Property)//杆状图
|
||||
{
|
||||
//先处理通用属性
|
||||
CommonPropertyChanged(pProperty, variant);
|
||||
//
|
||||
changedGanzhuangProperty(m_propertyData[pProperty], variant);
|
||||
}
|
||||
else if (m_strCurrentProperty == Jykt_Property)//井眼垮塌矢量图
|
||||
{
|
||||
//先处理通用属性
|
||||
CommonPropertyChanged(pProperty, variant);
|
||||
//
|
||||
changedJyktProperty(m_propertyData[pProperty], variant);
|
||||
}
|
||||
else if (m_strCurrentProperty == Denv_Property)//井斜方位图
|
||||
{
|
||||
//先处理通用属性
|
||||
CommonPropertyChanged(pProperty, variant);
|
||||
//
|
||||
changedDenvProperty(m_propertyData[pProperty], variant);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyWidget::SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle)
|
||||
|
|
@ -2820,8 +2839,8 @@ void PropertyWidget::initTrackProperty(FormTrackTop *fromTop, int iWidth, QMyTab
|
|||
_CreateVariantPropertyItem("通常", "道头字体", fromTop->m_font, QVariant::Font);
|
||||
_CreateVariantPropertyItem("通常", "道头字颜色", fromTop->m_fontColor, QVariant::Color);
|
||||
//
|
||||
// _CreateVariantPropertyItem("网格", "水平", fromTop->m_nTrackW, QVariant::Bool);
|
||||
// _CreateVariantPropertyItem("网格", "垂直", fromTop->m_nTrackW, QVariant::Bool);
|
||||
_CreateVariantPropertyItem("网格", "水平", fromTop->m_nTrackW, QVariant::Bool);
|
||||
_CreateVariantPropertyItem("网格", "垂直", fromTop->m_nTrackW, QVariant::Bool);
|
||||
// _CreateVariantPropertyItem("网格", "道左刻度", fromTop->m_nTrackW, QVariant::Double);
|
||||
// _CreateVariantPropertyItem("网格", "道右刻度", fromTop->m_nTrackW, QVariant::Double);
|
||||
// _CreateVariantPropertyItem("网格", "同步修改曲线刻度", fromTop->m_nTrackW, QVariant::Double);
|
||||
|
|
@ -3198,6 +3217,21 @@ void PropertyWidget::initProperty(FormInfo *formInfo)
|
|||
//蝌蚪图
|
||||
this->initKedouProperty(formInfo);
|
||||
}
|
||||
else if (m_strLineName == "GANZHUANG.LINE")
|
||||
{
|
||||
//杆状图
|
||||
this->initGanzhuangProperty(formInfo);
|
||||
}
|
||||
else if (m_strLineName == "JINGYANKUATA.LINE")
|
||||
{
|
||||
//井眼垮塌矢量图
|
||||
this->initJyktProperty(formInfo);
|
||||
}
|
||||
else if (m_strLineName == "XIEFANGWEI.LINE")
|
||||
{
|
||||
//井斜方位图
|
||||
this->initDenvProperty(formInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->initTableProperty(formInfo);
|
||||
|
|
@ -5199,7 +5233,6 @@ void PropertyWidget::changedRoseProperty(QString strProperty, QVariant varVal)
|
|||
|
||||
void PropertyWidget::initKedouProperty(FormInfo *formInfo)
|
||||
{
|
||||
|
||||
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
|
||||
_CreateVariantPropertyItem("字体", "名称", formInfo->m_curveNameFont, QVariant::Font);
|
||||
_CreateVariantPropertyItem("字体", "单位", formInfo->m_strUnitFont, QVariant::Font);
|
||||
|
|
@ -5215,7 +5248,7 @@ void PropertyWidget::initKedouProperty(FormInfo *formInfo)
|
|||
_CreateVariantPropertyItem("曲线选择", "方位曲线", formInfo->m_pl_azimuthCurve, QVariant::String);
|
||||
_CreateVariantPropertyItem("曲线选择", "倾角曲线", formInfo->m_pl_inclinationCurve, QVariant::String);
|
||||
_CreateVariantPropertyItem("曲线选择", "可信度曲线", formInfo->m_pl_GradCurve, QVariant::String);
|
||||
//
|
||||
//
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "圆半径", formInfo->m_nRadius, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "圆线宽度", formInfo->m_nCircleWidth, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "尾线长度", formInfo->m_nTailLen, QVariant::Double);
|
||||
|
|
@ -5247,8 +5280,6 @@ void PropertyWidget::changedKedouProperty(QString strProperty, QVariant varVal)
|
|||
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();
|
||||
}
|
||||
|
|
@ -5319,11 +5350,13 @@ void PropertyWidget::changedKedouProperty(QString strProperty, QVariant varVal)
|
|||
else if ("最小倾角" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_pl_minInclination = varVal.toDouble();
|
||||
this->m_formInfo->repaint();
|
||||
flag = true;
|
||||
}
|
||||
else if ("最大倾角" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_pl_maxInclination = varVal.toDouble();
|
||||
this->m_formInfo->repaint();
|
||||
flag = true;
|
||||
}
|
||||
else if ("可信度1" == strProperty)
|
||||
|
|
@ -5444,3 +5477,320 @@ void PropertyWidget::changedKedouProperty(QString strProperty, QVariant varVal)
|
|||
emit CallManage::getInstance()->sig_changeKedouProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyWidget::initGanzhuangProperty(FormInfo *formInfo)
|
||||
{
|
||||
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
|
||||
_CreateVariantPropertyItem("井文件名", "井文件名称", m_strSlfName, QVariant::String);
|
||||
|
||||
//
|
||||
_CreateVariantPropertyItem("曲线选择", "方位曲线", formInfo->m_pl_azimuthCurve, QVariant::String);
|
||||
_CreateVariantPropertyItem("曲线选择", "倾角曲线", formInfo->m_pl_inclinationCurve, QVariant::String);
|
||||
_CreateVariantPropertyItem("曲线选择", "可信度曲线", formInfo->m_pl_GradCurve, QVariant::String);
|
||||
//
|
||||
_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_strUnit, QVariant::String);
|
||||
//
|
||||
_CreateVariantPropertyItem("杆设置", "深度间隔", formInfo->m_flStep, QVariant::Double);
|
||||
_CreateVariantPropertyItem("杆设置", "线长度", formInfo->m_nTailLen, QVariant::Double);
|
||||
_CreateVariantPropertyItem("杆设置", "线宽度", formInfo->m_nTailWidth, QVariant::Double);
|
||||
_CreateVariantPropertyItem("杆设置", "线颜色", formInfo->m_crTail, QVariant::Color);
|
||||
|
||||
m_strCurrentProperty = Ganzhuang_Property;
|
||||
}
|
||||
|
||||
void PropertyWidget::changedGanzhuangProperty(QString strProperty, QVariant varVal)
|
||||
{
|
||||
bool flag = false;
|
||||
|
||||
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_nTailLen = varVal.toDouble();
|
||||
flag = true;
|
||||
}
|
||||
else if ("线宽度" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_nTailWidth = varVal.toDouble();
|
||||
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();
|
||||
this->m_formInfo->repaint();
|
||||
flag = true;
|
||||
}
|
||||
else if ("最大倾角" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_pl_maxInclination = varVal.toDouble();
|
||||
this->m_formInfo->repaint();
|
||||
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_strUnit = varVal.toString();
|
||||
this->m_formInfo->repaint();
|
||||
}
|
||||
else if ("深度间隔" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_flStep = varVal.toDouble();
|
||||
flag = true;
|
||||
}
|
||||
|
||||
if(flag)
|
||||
{
|
||||
emit CallManage::getInstance()->sig_changeGanzhuangProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyWidget::initJyktProperty(FormInfo *formInfo)
|
||||
{
|
||||
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
|
||||
_CreateVariantPropertyItem("井文件名", "井文件名称", m_strSlfName, QVariant::String);
|
||||
//
|
||||
_CreateVariantPropertyItem("曲线选择", "方位曲线", formInfo->m_pl_azimuthCurve, QVariant::String);
|
||||
_CreateVariantPropertyItem("曲线选择", "井径差曲线", formInfo->m_pl_deltaCurve, QVariant::String);
|
||||
//
|
||||
_CreateVariantPropertyItem("崩落设置", "左刻度", formInfo->m_vmin, QVariant::Double);
|
||||
_CreateVariantPropertyItem("崩落设置", "右刻度", formInfo->m_vmax, QVariant::Double);
|
||||
_CreateVariantPropertyItem("崩落设置", "深度间隔", formInfo->m_flStep, QVariant::Double);
|
||||
_CreateVariantPropertyItem("崩落设置", "角度偏移", formInfo->m_nOffset, QVariant::Double);
|
||||
_CreateVariantPropertyItem("崩落设置", "显示单位", formInfo->m_strUnit, QVariant::String);
|
||||
//
|
||||
_CreateVariantPropertyItem("蝌蚪设置", "圆半径", formInfo->m_nRadius, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪设置", "圆填充色", formInfo->m_crPointFill, QVariant::Color);
|
||||
_CreateVariantPropertyItem("蝌蚪设置", "圆线宽度", formInfo->m_nCircleWidth, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪设置", "圆线颜色", formInfo->m_crCircle, QVariant::Color);
|
||||
_CreateVariantPropertyItem("蝌蚪设置", "尾线长度", formInfo->m_nTailLen, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪设置", "尾线宽度", formInfo->m_nTailWidth, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪设置", "尾线颜色", formInfo->m_crTail, QVariant::Color);
|
||||
|
||||
m_strCurrentProperty = Jykt_Property;
|
||||
}
|
||||
|
||||
void PropertyWidget::changedJyktProperty(QString strProperty, QVariant varVal)
|
||||
{
|
||||
bool flag = false;
|
||||
// 字体
|
||||
if ("方位曲线" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_pl_azimuthCurve = varVal.toString();
|
||||
flag = true;
|
||||
}
|
||||
else if ("井径差曲线" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_pl_deltaCurve = 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_crPointFill = varVal.value<QColor>();
|
||||
flag = true;
|
||||
}
|
||||
//
|
||||
else if ("左刻度" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_vmin = varVal.toDouble();
|
||||
this->m_formInfo->repaint();
|
||||
flag = true;
|
||||
}
|
||||
else if ("右刻度" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_vmax = varVal.toDouble();
|
||||
this->m_formInfo->repaint();
|
||||
flag = true;
|
||||
}
|
||||
else if ("深度间隔" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_flStep = varVal.toDouble();
|
||||
flag = true;
|
||||
}
|
||||
else if ("角度偏移" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_nOffset = varVal.toDouble();
|
||||
flag = true;
|
||||
}
|
||||
else if ("显示单位" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_strUnit = varVal.toString();
|
||||
this->m_formInfo->repaint();
|
||||
}
|
||||
|
||||
if(flag)
|
||||
{
|
||||
emit CallManage::getInstance()->sig_changeJyktProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void PropertyWidget::initDenvProperty(FormInfo *formInfo)
|
||||
{
|
||||
_CreateVariantPropertyItem("曲线图名", "显示名称", formInfo->m_strAliasName, QVariant::String);
|
||||
_CreateVariantPropertyItem("井文件名", "井文件名称", m_strSlfName, QVariant::String);
|
||||
//
|
||||
_CreateVariantPropertyItem("曲线选择", "方位曲线", formInfo->m_pl_azimuthCurve, QVariant::String);
|
||||
_CreateVariantPropertyItem("曲线选择", "井斜曲线", formInfo->m_pl_deviCurve, QVariant::String);
|
||||
//
|
||||
_CreateVariantPropertyItem("曲线单位", "显示单位", formInfo->m_strUnit, QVariant::String);
|
||||
//
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "左刻度", formInfo->m_vmin, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "右刻度", formInfo->m_vmax, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "深度间隔", formInfo->m_flStep, QVariant::Double);
|
||||
//
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "圆半径", formInfo->m_nRadius, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "圆填充色", formInfo->m_crPointFill, QVariant::Color);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "圆线宽度", formInfo->m_nCircleWidth, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "圆线颜色", formInfo->m_crCircle, QVariant::Color);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "尾线长度", formInfo->m_nTailLen, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "尾线宽度", formInfo->m_nTailWidth, QVariant::Double);
|
||||
_CreateVariantPropertyItem("蝌蚪符号", "尾线颜色", formInfo->m_crTail, QVariant::Color);
|
||||
|
||||
m_strCurrentProperty = Denv_Property;
|
||||
}
|
||||
|
||||
void PropertyWidget::changedDenvProperty(QString strProperty, QVariant varVal)
|
||||
{
|
||||
bool flag = false;
|
||||
// 字体
|
||||
if ("方位曲线" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_pl_azimuthCurve = varVal.toString();
|
||||
flag = true;
|
||||
}
|
||||
else if ("井斜曲线" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_pl_deviCurve = 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_crPointFill = varVal.value<QColor>();
|
||||
flag = true;
|
||||
}
|
||||
//
|
||||
else if ("左刻度" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_vmin = varVal.toDouble();
|
||||
this->m_formInfo->repaint();
|
||||
flag = true;
|
||||
}
|
||||
else if ("右刻度" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_vmax = varVal.toDouble();
|
||||
this->m_formInfo->repaint();
|
||||
flag = true;
|
||||
}
|
||||
else if ("深度间隔" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_flStep = varVal.toDouble();
|
||||
flag = true;
|
||||
}
|
||||
else if ("显示单位" == strProperty)
|
||||
{
|
||||
this->m_formInfo->m_strUnit = varVal.toString();
|
||||
this->m_formInfo->repaint();
|
||||
}
|
||||
|
||||
if(flag)
|
||||
{
|
||||
emit CallManage::getInstance()->sig_changeDenvProperty(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,6 +78,9 @@
|
|||
#define TubingItem_Property "TubingItem_Property" //套管组件item
|
||||
|
||||
#define Kedou_Property "Kedou_Property" //蝌蚪图
|
||||
#define Ganzhuang_Property "Ganzhuang_Property" //杆状图
|
||||
#define Jykt_Property "Jykt_Property" //井眼垮塌矢量图
|
||||
#define Denv_Property "Denv_Property" //井斜方位图
|
||||
|
||||
#pragma execution_character_set("utf-8")
|
||||
|
||||
|
|
@ -262,6 +265,18 @@ public:
|
|||
void initKedouProperty(FormInfo *formInfo);
|
||||
void changedKedouProperty(QString strProName, QVariant val);
|
||||
|
||||
//杆状图
|
||||
void initGanzhuangProperty(FormInfo *formInfo);
|
||||
void changedGanzhuangProperty(QString strProName, QVariant val);
|
||||
|
||||
//井眼垮塌矢量图
|
||||
void initJyktProperty(FormInfo *formInfo);
|
||||
void changedJyktProperty(QString strProName, QVariant val);
|
||||
|
||||
//井斜方位图
|
||||
void initDenvProperty(FormInfo *formInfo);
|
||||
void changedDenvProperty(QString strProName, QVariant val);
|
||||
|
||||
public slots:
|
||||
void SlotPropertyChanged(QtProperty *property, const QVariant &variant);
|
||||
void SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle);
|
||||
|
|
|
|||
|
|
@ -44,9 +44,21 @@ CustomTabWidget::~CustomTabWidget()
|
|||
|
||||
void CustomTabWidget::addTab(QWidget *widget, const QString &strTab)
|
||||
{
|
||||
int iIndex = m_pTabBar->addTab(strTab);
|
||||
m_pStackedWidget->addWidget(widget);
|
||||
widget->setAcceptDrops(true);
|
||||
int iIndex = -1;
|
||||
for (int i = 0; i < m_pStackedWidget->count(); i++)
|
||||
{
|
||||
if (m_pStackedWidget->widget(i) == widget)
|
||||
{
|
||||
iIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (iIndex < 0)
|
||||
{
|
||||
iIndex = m_pTabBar->addTab(strTab);
|
||||
m_pStackedWidget->addWidget(widget);
|
||||
widget->setAcceptDrops(true);
|
||||
}
|
||||
//
|
||||
m_pTabBar->setCurrentIndex(iIndex);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ FormDraw::FormDraw(QWidget *parent, QString strSlfName, QString strWellName, QSt
|
|||
connect(CallManage::getInstance(), SIGNAL(sig_AddTableLine(QString, QString, QString, QString, QString)), this, SLOT(s_addTableLine(QString, QString, QString, QString, QString)));
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_delTableLine(QString, QString, QString, QString)), this, SLOT(s_delTableLine(QString, QString, QString, QString)));
|
||||
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_AddGanZhuangTu(QString, QString, QString, QString, QString, int)), this, SLOT(s_addGanZuangTu(QString, QString, QString, QString, QString,int)));
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_AddGanZhuangTu(QString, QString, QString, QString, QString, int)), this, SLOT(s_addGanZhuangTu(QString, QString, QString, QString, QString,int)));
|
||||
|
||||
//井眼垮塌矢量图
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_AddJykt(QString, QString, QString, QString, QString, int)), this, SLOT(s_addJykt(QString, QString, QString, QString, QString,int)));
|
||||
|
|
@ -536,10 +536,10 @@ void FormDraw::DisplayLines(QJsonArray linesArray)
|
|||
// 岩心照片
|
||||
displayImageData(lineObjInfo);
|
||||
}
|
||||
else if (strLineName == "FRAC_HOLE.TABLE")
|
||||
else if (strLineName == "FRAC_HOLE.TABLE" || strLineName == "GANZHUANG.LINE" || strLineName == "JINGYANKUATA.LINE" || strLineName == "XIEFANGWEI.LINE")
|
||||
{
|
||||
// 蝌蚪图
|
||||
DisplayKedou_One(lineObjInfo);
|
||||
// 蝌蚪图、杆状图、井眼垮塌矢量图、井斜方位图
|
||||
DisplayKedouAndOthers_One(lineObjInfo);
|
||||
}
|
||||
}
|
||||
else if (strType == "JiegutextObject")
|
||||
|
|
@ -1127,7 +1127,7 @@ void FormDraw::DisplayTable_One(QJsonObject lineObjInfo)
|
|||
}
|
||||
|
||||
//蝌蚪图
|
||||
void FormDraw::DisplayKedou_One(QJsonObject lineObjInfo)
|
||||
void FormDraw::DisplayKedouAndOthers_One(QJsonObject lineObjInfo)
|
||||
{
|
||||
QString strSlfName = "";
|
||||
QString strWellName = "";
|
||||
|
|
@ -1194,15 +1194,9 @@ void FormDraw::DisplayKedou_One(QJsonObject lineObjInfo)
|
|||
|
||||
if (strLineName != "")
|
||||
{
|
||||
/*
|
||||
QVariantMap variantMap;
|
||||
// 数据
|
||||
variantMap["AliasName"] = strAliasName;
|
||||
variantMap["curveNameFont"] = curveNameFont;*/
|
||||
|
||||
//结论
|
||||
this->addKedou(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, lineObjInfo);
|
||||
}
|
||||
//蝌蚪图、杆状、井眼垮塌矢量图、井斜方位图
|
||||
this->addKedouAndOthers(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, lineObjInfo);
|
||||
}
|
||||
}
|
||||
|
||||
//气测/FMT/射孔/文本
|
||||
|
|
@ -2908,14 +2902,6 @@ QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QStri
|
|||
if (strLineName == "FRAC_HOLE.TABLE")
|
||||
{
|
||||
//蝌蚪图
|
||||
curv->mKedou = true;
|
||||
//隐藏网格
|
||||
curv->xAxis->grid()->setVisible(false);
|
||||
curv->yAxis->grid()->setVisible(false);
|
||||
//
|
||||
curv->m_bRowGridVisible = false;
|
||||
curv->m_bColGridVisible = false;
|
||||
//
|
||||
initKedou(curv, strSlfName, strLineName);
|
||||
}
|
||||
else if (strLineName == "WORDS_RELUST")
|
||||
|
|
@ -2987,6 +2973,8 @@ QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QStri
|
|||
}
|
||||
else if (strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT")
|
||||
{
|
||||
curv->setRowGridVisible(false);
|
||||
curv->setColGridVisible(false);
|
||||
//固井结论
|
||||
if(listOtherProperty.size()>=3)
|
||||
{
|
||||
|
|
@ -3030,15 +3018,11 @@ QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QStri
|
|||
return curv;
|
||||
}
|
||||
|
||||
QMyCustomPlot* FormDraw::addKedou(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QJsonObject listOtherProperty)
|
||||
QMyCustomPlot* FormDraw::addKedouAndOthers(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QJsonObject listOtherProperty)
|
||||
{
|
||||
if (strLineName == "FRAC_HOLE.TABLE" || strLineName == "WORDS_RELUST" || strLineName == "RESULT"
|
||||
|| strLineName == "GEO_LITH" || strLineName == "SWALL_CORE"
|
||||
|| strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT"
|
||||
|| strLineName == "CORE_PHYSICS" || strLineName == "IMAGE_DATA"
|
||||
|| strLineName == "LAYER_DATA" )
|
||||
//蝌蚪、杆状、井眼垮塌矢量图、井斜方位图
|
||||
if (strLineName == "FRAC_HOLE.TABLE" || strLineName == "GANZHUANG.LINE" || strLineName == "JINGYANKUATA.LINE" || strLineName == "XIEFANGWEI.LINE")
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -3070,14 +3054,6 @@ QMyCustomPlot* FormDraw::addKedou(QString strUuid, QString strSlfName, QString s
|
|||
if (strLineName == "FRAC_HOLE.TABLE")
|
||||
{
|
||||
//蝌蚪图
|
||||
curv->mKedou = true;
|
||||
//隐藏网格
|
||||
curv->xAxis->grid()->setVisible(false);
|
||||
curv->yAxis->grid()->setVisible(false);
|
||||
//
|
||||
curv->m_bRowGridVisible = false;
|
||||
curv->m_bColGridVisible = false;
|
||||
|
||||
QString strAliasName = "蝌蚪图";
|
||||
QColor newlineColor=QColor(0,0,0);
|
||||
// 显示名称
|
||||
|
|
@ -3092,6 +3068,54 @@ QMyCustomPlot* FormDraw::addKedou(QString strUuid, QString strSlfName, QString s
|
|||
//
|
||||
initKedou(curv, strSlfName, strLineName, strAliasName, newlineColor, listOtherProperty);
|
||||
}
|
||||
else if(strLineName == "GANZHUANG.LINE")
|
||||
{
|
||||
QString strAliasName = "杆状图";
|
||||
QColor newlineColor=QColor(0,0,0);
|
||||
// 显示名称
|
||||
// 显示名称
|
||||
if (listOtherProperty.contains("AliasName"))
|
||||
{
|
||||
QJsonValue value = listOtherProperty.value("AliasName");
|
||||
if (value.isString()) {
|
||||
strAliasName = value.toString();
|
||||
}
|
||||
}
|
||||
//
|
||||
initGanzhuang(curv, strSlfName, strLineName, strAliasName, newlineColor, listOtherProperty);
|
||||
}
|
||||
else if(strLineName == "JINGYANKUATA.LINE")
|
||||
{
|
||||
QString strAliasName = "井眼崩落矢量图";
|
||||
QColor newlineColor=QColor(0,0,0);
|
||||
// 显示名称
|
||||
// 显示名称
|
||||
if (listOtherProperty.contains("AliasName"))
|
||||
{
|
||||
QJsonValue value = listOtherProperty.value("AliasName");
|
||||
if (value.isString()) {
|
||||
strAliasName = value.toString();
|
||||
}
|
||||
}
|
||||
//
|
||||
initJykt(curv, strSlfName, strLineName, strAliasName, newlineColor, listOtherProperty);
|
||||
}
|
||||
else if(strLineName == "XIEFANGWEI.LINE")
|
||||
{
|
||||
QString strAliasName = "井斜方位图";
|
||||
QColor newlineColor=QColor(0,0,0);
|
||||
// 显示名称
|
||||
// 显示名称
|
||||
if (listOtherProperty.contains("AliasName"))
|
||||
{
|
||||
QJsonValue value = listOtherProperty.value("AliasName");
|
||||
if (value.isString()) {
|
||||
strAliasName = value.toString();
|
||||
}
|
||||
}
|
||||
//
|
||||
initDenv(curv, strSlfName, strLineName, strAliasName, newlineColor, listOtherProperty);
|
||||
}
|
||||
connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
|
||||
//
|
||||
m_listLineName.push_back(strLineName);
|
||||
|
|
@ -3716,9 +3740,8 @@ void FormDraw::s_selectionRectAccepted(const QRect &rect, QMouseEvent *event)
|
|||
// double y2 = widget->yAxis->pixelToCoord(rect.bottom());
|
||||
}
|
||||
|
||||
void FormDraw::s_addGanZuangTu(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW)
|
||||
void FormDraw::s_addGanZhuangTu(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW)
|
||||
{
|
||||
|
||||
//井名&道名不一致
|
||||
if(strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName)
|
||||
{
|
||||
|
|
@ -3741,100 +3764,17 @@ void FormDraw::s_addGanZuangTu(QString strUuid, QString strSlfName, QString strW
|
|||
curv->m_strUuid = m_strUuid;
|
||||
curv->setDepthY(m_iY1, m_iY2);
|
||||
curv->initGeometry(m_strUuid, m_iScale, g_iOneWidth);
|
||||
|
||||
curv->show();
|
||||
|
||||
//杆状图
|
||||
initGanzhuang(curv, strSlfName, strLineName);
|
||||
|
||||
////////////////////////////////////////
|
||||
m_Value=NULL;
|
||||
m_Value2=NULL;
|
||||
m_Value3=NULL;
|
||||
m_bTableData=0;//表格或曲线
|
||||
//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;
|
||||
|
||||
//读数据
|
||||
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);
|
||||
curv->yAxis->setTickLabels(true);
|
||||
curv->yAxis->setTickLabelSide(QCPAxis::lsInside);
|
||||
QFont font1("微软雅黑", 16); //fontSize 10
|
||||
curv->yAxis->setTickLabelFont(font1);
|
||||
//
|
||||
// curv->xAxis->ticker()->setTickCount(10);//x个主刻度
|
||||
// curv->yAxis->ticker()->setTickCount(60);//y个主刻度
|
||||
int iMyWidth = curv->axisRect(0)->width();
|
||||
float vmax = iMyWidth;
|
||||
float vmin = 0;
|
||||
curv->setScaleX(vmin, vmax);
|
||||
curv->axisRect()->setupFullAxesBox();
|
||||
//
|
||||
curv->xAxis->ticker()->setTickCount(10);//x个主刻度
|
||||
curv->yAxis->ticker()->setTickCount(60);//y个主刻度
|
||||
|
||||
//对调XY轴,在最前面设置
|
||||
QCPAxis *yAxis = curv->yAxis;
|
||||
QCPAxis *xAxis = curv->xAxis;
|
||||
curv->xAxis = yAxis;
|
||||
curv->yAxis = xAxis;
|
||||
|
||||
|
||||
m_LeftVal = 0;
|
||||
m_RightVal = 90;
|
||||
//隐藏刻度
|
||||
curv->xAxis->setTicks(false);
|
||||
curv->yAxis->setTicks(false);
|
||||
curv->xAxis2->setTicks(false);
|
||||
curv->yAxis2->setTicks(false);
|
||||
curv->xAxis->setVisible(false);
|
||||
curv->xAxis2->setVisible(false);
|
||||
curv->yAxis->setVisible(false);
|
||||
curv->yAxis2->setVisible(false);
|
||||
//蝌蚪图
|
||||
// curv->mKedou = true;
|
||||
//隐藏网格
|
||||
// curv->xAxis->grid()->setVisible(false);
|
||||
// curv->yAxis->grid()->setVisible(false);
|
||||
DrawStck(curv);
|
||||
|
||||
|
||||
//道-对象
|
||||
QString strAliasName = "杆状图";
|
||||
QString strUnit = "";
|
||||
QColor newlineColor=QColor(0,0,0);
|
||||
double width=2;
|
||||
QString strScaleType = "";
|
||||
//道-对象
|
||||
m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "ganzhuangtuObject");
|
||||
//
|
||||
connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
|
||||
m_listLineName.push_back(strLineName);
|
||||
}
|
||||
|
||||
//井眼垮塌矢量图
|
||||
void FormDraw::s_addJykt(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW)
|
||||
{
|
||||
//井名&道名不一致
|
||||
|
|
@ -3858,31 +3798,19 @@ void FormDraw::s_addJykt(QString strUuid, QString strSlfName, QString strWellNam
|
|||
curv->m_formTrack = m_formTrack;
|
||||
curv->setDepthY(m_iY1, m_iY2);
|
||||
curv->initGeometry(m_strUuid, m_iScale, g_iOneWidth);
|
||||
|
||||
//curv->resize(INT_MAX, INT_MAX); // 使用 INT_MAX 来避免16位整数的限制
|
||||
// QSizePolicy policy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
// curv->setSizePolicy(policy);
|
||||
|
||||
curv->show();
|
||||
|
||||
//井眼垮塌矢量图
|
||||
DrawJykt(curv, strSlfName);
|
||||
|
||||
//道-对象
|
||||
QString strAliasName = "井眼垮塌矢量图";
|
||||
QString strUnit = "(°)";
|
||||
QColor newlineColor=QColor(0,0,0);
|
||||
double width=2;
|
||||
QString strScaleType = "";
|
||||
//道-对象
|
||||
m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "JyktObject");
|
||||
//
|
||||
initJykt(curv, strSlfName, strLineName);
|
||||
|
||||
//
|
||||
connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
|
||||
|
||||
//
|
||||
m_listLineName.push_back(strLineName);
|
||||
}
|
||||
|
||||
//井斜方位图
|
||||
void FormDraw::s_addDenv(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW)
|
||||
{
|
||||
//井名&道名不一致
|
||||
|
|
@ -3906,21 +3834,11 @@ void FormDraw::s_addDenv(QString strUuid, QString strSlfName, QString strWellNam
|
|||
curv->m_formTrack = m_formTrack;
|
||||
curv->setDepthY(m_iY1, m_iY2);
|
||||
curv->initGeometry(m_strUuid, m_iScale, g_iOneWidth);
|
||||
|
||||
curv->show();
|
||||
|
||||
//井斜方位图
|
||||
DrawDenv(curv, strSlfName);
|
||||
initDenv(curv, strSlfName, strLineName);
|
||||
|
||||
//道-对象
|
||||
QString strAliasName = "井斜方位图";
|
||||
QString strUnit = "(°)";
|
||||
QColor newlineColor=QColor(0,0,0);
|
||||
double width=2;
|
||||
QString strScaleType = "";
|
||||
//道-对象
|
||||
m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "DenvObject");
|
||||
//
|
||||
connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
|
||||
|
||||
//
|
||||
|
|
@ -4083,6 +4001,7 @@ void FormDraw::s_addCrack(QString strUuid, QString strSlfName, QString strWellNa
|
|||
//注意,不对调XY轴
|
||||
curv->m_bX2Y = false;
|
||||
CPickFrac *pickFrac = new CPickFrac(curv, strSlfName, strWaveName, iMyWidth);
|
||||
curv->m_cPickFrac = pickFrac;
|
||||
|
||||
//
|
||||
connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
|
||||
|
|
@ -5156,6 +5075,15 @@ void FormDraw::DrawImageNew_NoFilter(QMyCustomPlot *widget, QString strSlfName,
|
|||
//蝌蚪图
|
||||
void FormDraw::initKedou(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName, QColor newlineColor, QJsonObject listOtherProperty)
|
||||
{
|
||||
widget->mKedou = true;
|
||||
|
||||
//隐藏网格
|
||||
widget->xAxis->grid()->setVisible(false);
|
||||
widget->yAxis->grid()->setVisible(false);
|
||||
//
|
||||
widget->m_bRowGridVisible = false;
|
||||
widget->m_bColGridVisible = false;
|
||||
|
||||
int iMyWidth = widget->axisRect(0)->width();
|
||||
float vmax = iMyWidth;
|
||||
float vmin = 0;
|
||||
|
|
@ -5185,16 +5113,183 @@ void FormDraw::initKedou(QMyCustomPlot *widget, QString strSlfName, QString strL
|
|||
widget->yAxis2->setVisible(false);
|
||||
|
||||
//-----------------------------------
|
||||
QString strUnit = "";
|
||||
QString strUnit = "(°)";
|
||||
double width=2;
|
||||
QString strScaleType = "";
|
||||
//道-对象
|
||||
FormInfo* pInfo = m_formTrack->AddKedou(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject", listOtherProperty);
|
||||
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject", listOtherProperty);
|
||||
|
||||
//蝌蚪图
|
||||
widget->Draw_Kedou();
|
||||
}
|
||||
|
||||
//杆状图
|
||||
void FormDraw::initGanzhuang(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName, QColor newlineColor, QJsonObject listOtherProperty)
|
||||
{
|
||||
//隐藏网格
|
||||
widget->xAxis->grid()->setVisible(false);
|
||||
widget->yAxis->grid()->setVisible(false);
|
||||
//
|
||||
widget->m_bRowGridVisible = false;
|
||||
widget->m_bColGridVisible = false;
|
||||
|
||||
int iMyWidth = widget->axisRect(0)->width();
|
||||
float vmax = iMyWidth;
|
||||
float vmin = 0;
|
||||
|
||||
widget->setScaleX(vmin, iMyWidth);
|
||||
widget->axisRect()->setupFullAxesBox();
|
||||
//
|
||||
widget->xAxis->ticker()->setTickCount(10);//x个主刻度
|
||||
widget->yAxis->ticker()->setTickCount(60);//y个主刻度
|
||||
|
||||
//对调XY轴,在最前面设置
|
||||
QCPAxis *yAxis = widget->yAxis;
|
||||
QCPAxis *xAxis = widget->xAxis;
|
||||
widget->xAxis = yAxis;
|
||||
widget->yAxis = xAxis;
|
||||
|
||||
m_LeftVal = 0;
|
||||
m_RightVal = 90;
|
||||
//隐藏刻度
|
||||
widget->xAxis->setTicks(false);
|
||||
widget->yAxis->setTicks(false);
|
||||
widget->xAxis2->setTicks(false);
|
||||
widget->yAxis2->setTicks(false);
|
||||
widget->xAxis->setVisible(false);
|
||||
widget->xAxis2->setVisible(false);
|
||||
widget->yAxis->setVisible(false);
|
||||
widget->yAxis2->setVisible(false);
|
||||
|
||||
//-----------------------------------
|
||||
QString strUnit = "(°)";
|
||||
double width=2;
|
||||
QString strScaleType = "";
|
||||
if(!listOtherProperty.isEmpty())
|
||||
{
|
||||
strUnit = listOtherProperty["Unit"].toString(); // 单位
|
||||
}
|
||||
//道-对象
|
||||
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject", listOtherProperty);
|
||||
|
||||
//杆状图
|
||||
widget->Draw_Ganzhuang();
|
||||
}
|
||||
|
||||
//井眼垮塌矢量图
|
||||
void FormDraw::initJykt(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName, QColor newlineColor, QJsonObject listOtherProperty)
|
||||
{
|
||||
//隐藏网格
|
||||
widget->xAxis->grid()->setVisible(false);
|
||||
widget->yAxis->grid()->setVisible(false);
|
||||
//
|
||||
widget->m_bRowGridVisible = false;
|
||||
widget->m_bColGridVisible = false;
|
||||
|
||||
//-------------------
|
||||
m_LeftVal = 0;
|
||||
m_RightVal = 10;
|
||||
if(!listOtherProperty.isEmpty())
|
||||
{
|
||||
m_LeftVal = listOtherProperty["vmin"].toDouble();
|
||||
m_RightVal = listOtherProperty["vmax"].toDouble();
|
||||
}
|
||||
|
||||
float vmax = m_RightVal;
|
||||
float vmin = m_LeftVal;
|
||||
widget->setScaleX(vmin, vmax);
|
||||
widget->axisRect()->setupFullAxesBox();
|
||||
//
|
||||
widget->xAxis->ticker()->setTickCount(10);//x个主刻度
|
||||
widget->yAxis->ticker()->setTickCount(60);//y个主刻度
|
||||
|
||||
//对调XY轴,在最前面设置
|
||||
QCPAxis *yAxis = widget->yAxis;
|
||||
QCPAxis *xAxis = widget->xAxis;
|
||||
widget->xAxis = yAxis;
|
||||
widget->yAxis = xAxis;
|
||||
|
||||
//隐藏刻度
|
||||
widget->xAxis->setTicks(false);
|
||||
widget->yAxis->setTicks(false);
|
||||
widget->xAxis2->setTicks(false);
|
||||
widget->yAxis2->setTicks(false);
|
||||
widget->xAxis->setVisible(false);
|
||||
widget->xAxis2->setVisible(false);
|
||||
widget->yAxis->setVisible(false);
|
||||
widget->yAxis2->setVisible(false);
|
||||
|
||||
//-----------------------------------
|
||||
QString strUnit = "(°)";
|
||||
double width=2;
|
||||
QString strScaleType = "";
|
||||
if(!listOtherProperty.isEmpty())
|
||||
{
|
||||
strUnit = listOtherProperty["Unit"].toString(); // 单位
|
||||
}
|
||||
//道-对象
|
||||
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject", listOtherProperty);
|
||||
|
||||
//杆状图
|
||||
widget->Draw_Jykt();
|
||||
}
|
||||
|
||||
//井斜方位图
|
||||
void FormDraw::initDenv(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName, QColor newlineColor, QJsonObject listOtherProperty)
|
||||
{
|
||||
//隐藏网格
|
||||
widget->xAxis->grid()->setVisible(false);
|
||||
widget->yAxis->grid()->setVisible(false);
|
||||
//
|
||||
widget->m_bRowGridVisible = false;
|
||||
widget->m_bColGridVisible = false;
|
||||
|
||||
//-------------------
|
||||
m_LeftVal = 0;
|
||||
m_RightVal = 90;
|
||||
if(!listOtherProperty.isEmpty())
|
||||
{
|
||||
m_LeftVal = listOtherProperty["vmin"].toDouble();
|
||||
m_RightVal = listOtherProperty["vmax"].toDouble();
|
||||
}
|
||||
|
||||
float vmax = m_RightVal;
|
||||
float vmin = m_LeftVal;
|
||||
widget->setScaleX(vmin, vmax);
|
||||
widget->axisRect()->setupFullAxesBox();
|
||||
//
|
||||
widget->xAxis->ticker()->setTickCount(10);//x个主刻度
|
||||
widget->yAxis->ticker()->setTickCount(60);//y个主刻度
|
||||
|
||||
//对调XY轴,在最前面设置
|
||||
QCPAxis *yAxis = widget->yAxis;
|
||||
QCPAxis *xAxis = widget->xAxis;
|
||||
widget->xAxis = yAxis;
|
||||
widget->yAxis = xAxis;
|
||||
|
||||
//隐藏刻度
|
||||
widget->xAxis->setTicks(false);
|
||||
widget->yAxis->setTicks(false);
|
||||
widget->xAxis2->setTicks(false);
|
||||
widget->yAxis2->setTicks(false);
|
||||
widget->xAxis->setVisible(false);
|
||||
widget->xAxis2->setVisible(false);
|
||||
widget->yAxis->setVisible(false);
|
||||
widget->yAxis2->setVisible(false);
|
||||
|
||||
//-----------------------------------
|
||||
QString strUnit = "(°)";
|
||||
double width=2;
|
||||
QString strScaleType = "";
|
||||
if(!listOtherProperty.isEmpty())
|
||||
{
|
||||
strUnit = listOtherProperty["Unit"].toString(); // 单位
|
||||
}
|
||||
//道-对象
|
||||
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject", listOtherProperty);
|
||||
|
||||
//杆状图
|
||||
widget->Draw_Denv();
|
||||
}
|
||||
|
||||
void FormDraw::initWords(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName, QColor newlineColor, QStringList listOtherProperty)
|
||||
|
|
@ -6572,364 +6667,6 @@ void FormDraw::CalcDipWidth(int nColumn,float *flWidth,float factor,int x1,int x
|
|||
}
|
||||
|
||||
|
||||
void FormDraw::DrawJykt(QMyCustomPlot *widget, QString strSlfName)
|
||||
{
|
||||
//初始化数据
|
||||
m_nRadius=4;
|
||||
m_nTailLen = 8;
|
||||
m_nCircleLineWidth = 2 ;
|
||||
m_nTailWidth = 2;
|
||||
m_flStep = 0.5;
|
||||
m_nOffset = 90;
|
||||
m_crTailLine = qRgb(0,0,0);
|
||||
m_crLine = qRgb(0,0,0);
|
||||
m_crPointFill = qRgb(0,0,0);
|
||||
|
||||
//读取曲线数据
|
||||
m_csCurveDDIR="STRDIR"; //"DDIR";
|
||||
m_csCurveCAL="CALM";
|
||||
this->ReadData(strSlfName, m_csCurveCAL, 0, &m_Curve);
|
||||
this->ReadData(strSlfName, m_csCurveDDIR, 1, &m_Curve2);
|
||||
|
||||
//-------------------
|
||||
m_LeftVal = 0;
|
||||
m_RightVal = 10;
|
||||
|
||||
float vmax = m_RightVal;
|
||||
float vmin = m_LeftVal;
|
||||
widget->setScaleX(vmin, vmax);
|
||||
widget->axisRect()->setupFullAxesBox();
|
||||
//
|
||||
widget->xAxis->ticker()->setTickCount(10);//x个主刻度
|
||||
widget->yAxis->ticker()->setTickCount(60);//y个主刻度
|
||||
|
||||
//对调XY轴,在最前面设置
|
||||
QCPAxis *yAxis = widget->yAxis;
|
||||
QCPAxis *xAxis = widget->xAxis;
|
||||
widget->xAxis = yAxis;
|
||||
widget->yAxis = xAxis;
|
||||
|
||||
//隐藏刻度
|
||||
widget->xAxis->setTicks(false);
|
||||
widget->yAxis->setTicks(false);
|
||||
widget->xAxis2->setTicks(false);
|
||||
widget->yAxis2->setTicks(false);
|
||||
widget->xAxis->setVisible(false);
|
||||
widget->xAxis2->setVisible(false);
|
||||
widget->yAxis->setVisible(false);
|
||||
widget->yAxis2->setVisible(false);
|
||||
|
||||
//-------------
|
||||
float tempf,flVal;
|
||||
float flDep;
|
||||
int i,j,iPoint=0,nPointNum=0,tempi;
|
||||
QRectF rt,rtRect;
|
||||
float x,y,x1,y1,x2,y2;
|
||||
float dang,ddir;
|
||||
float dg,dy;
|
||||
float dgtord;
|
||||
float deps;
|
||||
|
||||
tempf = (m_EDep - m_SDep)/m_Rlev;
|
||||
nPointNum = tempf+1;
|
||||
|
||||
//
|
||||
dgtord=3.14159265/180.;
|
||||
QPen pPenTail = QPen(m_crTailLine, m_nTailWidth);//
|
||||
QPen pPenCircle = QPen(m_crLine, m_nCircleLineWidth);// add for:圆线宽度单独使用
|
||||
QBrush brush2(m_crPointFill);
|
||||
|
||||
// 注意映射方式
|
||||
float flVal1=0;
|
||||
if (m_flStep <=0) m_flStep = 0.5;//add for:用户要输入0.5,当输入到0时,系统已经刷新,除0异常 [5/23/2019 16:35 hxb]
|
||||
for (flDep = m_SDep; flDep < m_EDep; flDep += m_flStep)
|
||||
{
|
||||
y = -flDep;//起始深度
|
||||
|
||||
// 绘制圆
|
||||
i=(flDep-m_Curve.StartDepth)/m_Curve.DepLevel+0.5;
|
||||
if(i<0) continue;
|
||||
//
|
||||
j=(flDep-m_Curve2.StartDepth)/m_Curve2.DepLevel+0.5;
|
||||
if(j<0) continue;
|
||||
|
||||
flVal1 = GetData(m_Curve2.RepCode, (char *)&m_Value2[j*m_Curve2.CodeLen]);
|
||||
//角度小于0,不绘制
|
||||
if ( flVal1 <0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
flVal = GetData(m_Curve.RepCode, (char *)&m_Value[i*m_Curve.CodeLen]);
|
||||
x = flVal;
|
||||
|
||||
//圆
|
||||
QCPItemEllipse *qcpItemEllipse = new QCPItemEllipse(widget);
|
||||
qcpItemEllipse->setPen(pPenCircle);
|
||||
qcpItemEllipse->m_bCustom = true;
|
||||
qcpItemEllipse->m_nRadius = m_nRadius;
|
||||
qcpItemEllipse->topLeft->setCoords(y, x);//圆心位置
|
||||
qcpItemEllipse->bottomRight->setCoords(y, x);//圆心位置
|
||||
qcpItemEllipse->setBrush(brush2);//填充圆的颜色
|
||||
|
||||
//尾巴
|
||||
flVal=flVal1;
|
||||
flVal+=m_nOffset;
|
||||
if ( flVal >=180.)flVal -= 180;
|
||||
float dr=flVal*dgtord;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void FormDraw::DrawDenv(QMyCustomPlot *widget, QString strSlfName)
|
||||
{
|
||||
//初始化数据
|
||||
m_csCurveAZIM=("AZIM");
|
||||
m_csCurveDEVI=("DEVI");
|
||||
|
||||
m_nCircleLineWidth = 2 ;
|
||||
m_nTailWidth=2;
|
||||
m_TailColor=qRgb(255,0,0);
|
||||
m_crPointFillDenv=qRgb(0,0,0);
|
||||
m_crCirCleColor = qRgb(0,0,255);
|
||||
m_nRadius = 4;
|
||||
m_nTailLen=8;
|
||||
m_flStep=1;
|
||||
|
||||
//读取曲线数据
|
||||
this->ReadData(strSlfName, m_csCurveAZIM, 0, &m_Curve);
|
||||
this->ReadData(strSlfName, m_csCurveDEVI, 1, &m_Curve2);
|
||||
|
||||
//-------------------
|
||||
m_LeftVal = 0;
|
||||
m_RightVal = 90;
|
||||
|
||||
float vmax = m_RightVal;
|
||||
float vmin = m_LeftVal;
|
||||
widget->setScaleX(vmin, vmax);
|
||||
widget->axisRect()->setupFullAxesBox();
|
||||
//
|
||||
widget->xAxis->ticker()->setTickCount(10);//x个主刻度
|
||||
widget->yAxis->ticker()->setTickCount(60);//y个主刻度
|
||||
|
||||
//对调XY轴,在最前面设置
|
||||
QCPAxis *yAxis = widget->yAxis;
|
||||
QCPAxis *xAxis = widget->xAxis;
|
||||
widget->xAxis = yAxis;
|
||||
widget->yAxis = xAxis;
|
||||
|
||||
//隐藏刻度
|
||||
widget->xAxis->setTicks(false);
|
||||
widget->yAxis->setTicks(false);
|
||||
widget->xAxis2->setTicks(false);
|
||||
widget->yAxis2->setTicks(false);
|
||||
widget->xAxis->setVisible(false);
|
||||
widget->xAxis2->setVisible(false);
|
||||
widget->yAxis->setVisible(false);
|
||||
widget->yAxis2->setVisible(false);
|
||||
|
||||
//
|
||||
QPen pPen(m_TailColor,m_nTailWidth);
|
||||
QPen pPen2(m_crCirCleColor,m_nCircleLineWidth);
|
||||
QBrush cBrush(m_crPointFillDenv);
|
||||
|
||||
float tempf,flVal;
|
||||
int i,j,nPointNum=0,tempi;
|
||||
QRectF rt,rtRect;
|
||||
float x,y;
|
||||
float dgtord,dr;
|
||||
|
||||
if ( m_Value==0 || m_Value2==0 )
|
||||
return ;
|
||||
|
||||
// 计算显示深度
|
||||
tempf = (m_EDep - m_SDep)/m_Rlev + 0.5;
|
||||
nPointNum = tempf+1;
|
||||
if ( nPointNum <= 1 ) return ;
|
||||
dgtord=3.14159265/180.;
|
||||
|
||||
QBrush brush2(QColor(qRgb(0,0,0)));
|
||||
{
|
||||
for (float dep=m_SDep; dep<m_EDep; dep+=m_flStep)
|
||||
{
|
||||
i=(dep-m_Curve2.StartDepth)/m_Curve2.DepLevel+0.5;
|
||||
if(i<0) continue;
|
||||
|
||||
flVal = GetData(m_Curve2.RepCode,(char *)&m_Value2[i*m_Curve2.CodeLen]);
|
||||
|
||||
x = flVal;
|
||||
y = -dep;//起始深度
|
||||
|
||||
QCPItemEllipse *qcpItemEllipse = new QCPItemEllipse(widget);
|
||||
qcpItemEllipse->setPen(pPen2);
|
||||
qcpItemEllipse->m_bCustom = true;
|
||||
qcpItemEllipse->m_nRadius = m_nRadius;
|
||||
qcpItemEllipse->topLeft->setCoords(y, x);//圆心位置
|
||||
qcpItemEllipse->bottomRight->setCoords(y, x);//圆心位置
|
||||
qcpItemEllipse->setBrush(cBrush);//填充圆的颜色
|
||||
|
||||
//
|
||||
flVal = GetData(m_Curve.RepCode,(char *)&m_Value[i*m_Curve.CodeLen]);
|
||||
dr=flVal*dgtord;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FormDraw::DrawStck(QMyCustomPlot *widget)
|
||||
{
|
||||
float flWidth[50];
|
||||
int l;
|
||||
float dep;
|
||||
int m_nScaleThinGrid=10;
|
||||
float lstk=2;
|
||||
float dang,ddir;
|
||||
float dg,dy,dx;
|
||||
// 计算位置
|
||||
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 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 =160;//= 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);//填充圆的颜色
|
||||
|
||||
|
||||
//方位
|
||||
dang = GetData(m_Curve.RepCode,(char *)&m_Value[i*m_Curve.CodeLen]);//DDIR
|
||||
dr=dang*dgtord;
|
||||
//dx=abs(lstk*cos(dr));
|
||||
// dy=sqrt(lstk*lstk*(1-cos(dr)*cos(dr)));
|
||||
// // 注意映射方式
|
||||
// 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_nSltk; //杆长
|
||||
qcpItemLine->m_nRadius = 0; //半径
|
||||
qcpItemLine->m_dr = dr;
|
||||
QCPItemLine *qcpItemLine1 = new QCPItemLine(widget);
|
||||
qcpItemLine1->start->setCoords(y, x);//圆心位置
|
||||
qcpItemLine1->end->setCoords(y, x);//圆心位置
|
||||
qcpItemLine1->setPen(pPen);
|
||||
qcpItemLine1->m_bCustom = true;
|
||||
qcpItemLine1->m_nTailLen = m_nSltk; //杆长
|
||||
qcpItemLine1->m_nRadius = 0; //半径
|
||||
qcpItemLine1->m_dr = dr+PI;
|
||||
|
||||
//移动对象
|
||||
// widget->mSizeHandleManager->addItem(qcpItemEllipse, true);
|
||||
// widget->mSizeHandleManager->addItem(qcpItemLine, true);
|
||||
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//read config file: FRAC.CFG,save info into m_FracDef
|
||||
void FormDraw::ReadFracDef()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public:
|
|||
//表格:固井结论等
|
||||
void DisplayTable_One(QJsonObject lineObjInfo);
|
||||
//蝌蚪图
|
||||
void DisplayKedou_One(QJsonObject lineObjInfo);
|
||||
void DisplayKedouAndOthers_One(QJsonObject lineObjInfo);
|
||||
|
||||
//气测/FMT/射孔/文本
|
||||
void DisplayJiegutext_One(QJsonObject lineObjInfo);
|
||||
|
|
@ -91,7 +91,7 @@ protected:
|
|||
QMyCustomPlot* addTableLine(QString strUuid, QString strSlfName, QString strWellName,
|
||||
QString strTrackName, QString strLineName, QStringList listOtherProperty={});
|
||||
|
||||
QMyCustomPlot* addKedou(QString strUuid, QString strSlfName, QString strWellName,
|
||||
QMyCustomPlot* addKedouAndOthers(QString strUuid, QString strSlfName, QString strWellName,
|
||||
QString strTrackName, QString strLineName, QJsonObject listOtherProperty={});
|
||||
|
||||
public slots:
|
||||
|
|
@ -148,16 +148,21 @@ public:
|
|||
int getColorConfig(QVector <QString> &qFiles);
|
||||
void DrawImageNew_NoFilter(QMyCustomPlot *widget, QString strSlfName, QString &strWaveName, int &_nSamples);
|
||||
|
||||
//表格曲线
|
||||
//蝌蚪图
|
||||
void initKedou(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName = "蝌蚪图", QColor newlineColor=QColor(0,0,0), QJsonObject listOtherProperty={});
|
||||
//杆状图
|
||||
void initGanzhuang(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName = "杆状图", QColor newlineColor=QColor(0,0,0), QJsonObject listOtherProperty={});
|
||||
//井眼垮塌矢量图
|
||||
void initJykt(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName = "井眼崩落矢量图", QColor newlineColor=QColor(0,0,0), QJsonObject listOtherProperty={});
|
||||
//井斜方位图
|
||||
void initDenv(QMyCustomPlot *widget, QString strSlfName, QString strLineName, QString strAliasName = "井斜方位图", QColor newlineColor=QColor(0,0,0), QJsonObject listOtherProperty={});
|
||||
|
||||
void ReadFracDef();
|
||||
void ReadData(QString strSlfName, QString strLineName);//表格
|
||||
void ReadData(QString strSlfName, QString strLineName, int iCurve, Slf_CURVE *curve);//曲线
|
||||
void DrawStck(QMyCustomPlot *widget);
|
||||
|
||||
void CalcDipWidth(int nColumn,float *flWidth,float factor,int x1,int x2,float flHoriRatio);
|
||||
void Refurbish();
|
||||
void DrawJykt(QMyCustomPlot *widget, QString strSlfName);
|
||||
void DrawDenv(QMyCustomPlot *widget, QString strSlfName);
|
||||
|
||||
int m_PointNum;
|
||||
//
|
||||
|
|
@ -255,7 +260,7 @@ public slots:
|
|||
void s_handleRectRangeChange(QCPRange newRange);
|
||||
void s_selectionRectAccepted(const QRect &rect, QMouseEvent *event);
|
||||
|
||||
void s_addGanZuangTu(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW);//杆状图
|
||||
void s_addGanZhuangTu(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW);//杆状图
|
||||
//井眼垮塌矢量图
|
||||
void s_addJykt(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW);
|
||||
//井斜方位图
|
||||
|
|
|
|||
|
|
@ -127,8 +127,8 @@ void FormInfo::initProperty_Kedou(QJsonObject obj)
|
|||
// 显示控制
|
||||
this->m_pl_minInclination = 0; // 最小倾角
|
||||
this->m_pl_maxInclination = 360; // 最大倾角
|
||||
this->m_flGrad1 = 10; // 可信度1
|
||||
this->m_flGrad2 = 50; // 可信度2
|
||||
this->m_flGrad1 = 1; // 可信度1
|
||||
this->m_flGrad2 = 5; // 可信度2
|
||||
// 显示控制(数据表)
|
||||
this->m_crack_decimal_digits = 2; // 小数位数
|
||||
|
||||
|
|
@ -212,6 +212,183 @@ void FormInfo::initProperty_Kedou(QJsonObject obj)
|
|||
}
|
||||
}
|
||||
|
||||
void FormInfo::initProperty_Ganzhuang(QJsonObject obj)
|
||||
{
|
||||
if(obj.isEmpty())
|
||||
{
|
||||
// 字体
|
||||
|
||||
// 曲线选择
|
||||
this->m_pl_azimuthCurve = "DDIR"; // 方位曲线
|
||||
this->m_pl_inclinationCurve = "DANG"; // 倾角曲线
|
||||
this->m_pl_GradCurve = "GRAD"; // 可信度曲线
|
||||
|
||||
//杆
|
||||
this->m_nTailLen = 15; // 尾线长度
|
||||
this->m_nTailWidth = 2; // 尾线宽度
|
||||
|
||||
// 显示控制
|
||||
this->m_pl_minInclination = 0; // 最小倾角
|
||||
this->m_pl_maxInclination = 90; // 最大倾角
|
||||
this->m_flGrad1 = 10; // 可信度1
|
||||
this->m_flGrad2 = 50; // 可信度2
|
||||
//
|
||||
this->m_strUnit = "(°)";
|
||||
this->m_flStep = 0.5; // 深度间隔
|
||||
}
|
||||
else
|
||||
{
|
||||
QString strType = obj.value("Type").toString();
|
||||
if ("tableObject" == strType)
|
||||
{
|
||||
// 字体
|
||||
// 名称
|
||||
this->m_curveNameFont.fromString(obj["curveNameFont"].toString());
|
||||
|
||||
// 曲线选择
|
||||
this->m_pl_azimuthCurve = obj["m_pl_azimuthCurve"].toString(); // 方位曲线
|
||||
this->m_pl_inclinationCurve = obj["m_pl_inclinationCurve"].toString(); // 倾角曲线
|
||||
this->m_pl_GradCurve = obj["m_pl_GradCurve"].toString(); // 可信度曲线
|
||||
|
||||
//杆
|
||||
this->m_nTailLen = obj["m_nTailLen"].toDouble(); // 尾线长度
|
||||
this->m_nTailWidth = obj["m_nTailWidth"].toDouble(); // 尾线宽度
|
||||
this->m_crTail.setNamedColor(obj["m_crTail"].toString());// 尾线颜色
|
||||
|
||||
// 显示控制
|
||||
this->m_pl_minInclination = obj["m_pl_minInclination"].toDouble(); // 最小倾角
|
||||
this->m_pl_maxInclination = obj["m_pl_maxInclination"].toDouble(); // 最大倾角
|
||||
this->m_flGrad1 = obj["m_flGrad1"].toDouble(); // 可信度1
|
||||
this->m_flGrad2 = obj["m_flGrad2"].toDouble(); // 可信度2
|
||||
//
|
||||
this->m_strUnit = obj["Unit"].toString(); // 单位
|
||||
this->m_flStep = obj["m_flStep"].toDouble(); // 深度间隔
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void FormInfo::initProperty_Jykt(QJsonObject obj)
|
||||
{
|
||||
if(obj.isEmpty())
|
||||
{
|
||||
// 字体
|
||||
|
||||
// 曲线选择
|
||||
this->m_pl_azimuthCurve = "STRDIR"; // 方位曲线
|
||||
this->m_pl_deltaCurve = "CALM"; // 井径差曲线
|
||||
|
||||
//蝌蚪符号
|
||||
this->m_nRadius = 6; // 圆半径
|
||||
this->m_nCircleWidth = 1; // 圆线宽度
|
||||
this->m_nTailLen = 10; // 尾线长度
|
||||
this->m_nTailWidth = 2; // 尾线宽度
|
||||
|
||||
// 显示控制
|
||||
this->m_vmin = 0; // 左刻度
|
||||
this->m_vmax = 10; // 右刻度
|
||||
this->m_flStep = 0.5; // 深度间隔
|
||||
this->m_nOffset = 90; // 角度偏移
|
||||
//
|
||||
this->m_strUnit = "(°)";
|
||||
}
|
||||
else
|
||||
{
|
||||
QString strType = obj.value("Type").toString();
|
||||
if ("tableObject" == strType)
|
||||
{
|
||||
// 字体
|
||||
// 名称
|
||||
this->m_curveNameFont.fromString(obj["curveNameFont"].toString());
|
||||
// 单位
|
||||
this->m_strUnitFont.fromString(obj["m_strUnitFont"].toString());
|
||||
// 刻度
|
||||
this->m_pl_fontScale.fromString(obj["m_pl_fontScale"].toString());
|
||||
|
||||
|
||||
// 曲线选择
|
||||
this->m_pl_azimuthCurve = obj["m_pl_azimuthCurve"].toString(); // 方位曲线
|
||||
this->m_pl_deltaCurve = obj["m_pl_deltaCurve"].toString(); // 井径差曲线
|
||||
|
||||
//蝌蚪符号
|
||||
this->m_nRadius = obj["m_nRadius"].toDouble(); // 圆半径
|
||||
this->m_nCircleWidth = obj["m_nCircleWidth"].toDouble();// 圆线宽度
|
||||
this->m_nTailLen = obj["m_nTailLen"].toDouble(); // 尾线长度
|
||||
this->m_nTailWidth = obj["m_nTailWidth"].toDouble(); // 尾线宽度
|
||||
this->m_crCircle.setNamedColor(obj["m_crCircle"].toString());// 圆线颜色
|
||||
this->m_crTail.setNamedColor(obj["m_crTail"].toString());// 尾线颜色
|
||||
this->m_crPointFill.setNamedColor(obj["m_crPointFill"].toString());// 圆填充色
|
||||
|
||||
// 刻度
|
||||
this->m_vmin = obj["vmin"].toDouble(); // 左刻度
|
||||
this->m_vmax = obj["vmax"].toDouble(); // 右刻度
|
||||
this->m_flStep = obj["m_flStep"].toDouble(); // 深度间隔
|
||||
this->m_nOffset = obj["m_nOffset"].toDouble(); // 角度偏移
|
||||
//
|
||||
this->m_strUnit = obj["Unit"].toString(); // 单位
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FormInfo::initProperty_Denv(QJsonObject obj)
|
||||
{
|
||||
if(obj.isEmpty())
|
||||
{
|
||||
// 字体
|
||||
|
||||
// 曲线选择
|
||||
this->m_pl_azimuthCurve = "AZIM"; // 方位曲线
|
||||
this->m_pl_deviCurve = "DEVI"; // 井斜曲线
|
||||
|
||||
//蝌蚪符号
|
||||
this->m_nRadius = 6; // 圆半径
|
||||
this->m_nCircleWidth = 1; // 圆线宽度
|
||||
this->m_nTailLen = 10; // 尾线长度
|
||||
this->m_nTailWidth = 2; // 尾线宽度
|
||||
|
||||
// 显示控制
|
||||
this->m_vmin = 0; // 左刻度
|
||||
this->m_vmax = 90; // 右刻度
|
||||
this->m_flStep = 1; // 深度间隔
|
||||
//
|
||||
this->m_strUnit = "(°)";
|
||||
}
|
||||
else
|
||||
{
|
||||
QString strType = obj.value("Type").toString();
|
||||
if ("tableObject" == strType)
|
||||
{
|
||||
// 字体
|
||||
// 名称
|
||||
this->m_curveNameFont.fromString(obj["curveNameFont"].toString());
|
||||
// 单位
|
||||
this->m_strUnitFont.fromString(obj["m_strUnitFont"].toString());
|
||||
// 刻度
|
||||
this->m_pl_fontScale.fromString(obj["m_pl_fontScale"].toString());
|
||||
|
||||
// 曲线选择
|
||||
this->m_pl_azimuthCurve = obj["m_pl_azimuthCurve"].toString(); // 方位曲线
|
||||
this->m_pl_deviCurve = obj["m_pl_deviCurve"].toString(); // 井斜曲线
|
||||
|
||||
//蝌蚪符号
|
||||
this->m_nRadius = obj["m_nRadius"].toDouble(); // 圆半径
|
||||
this->m_nCircleWidth = obj["m_nCircleWidth"].toDouble();// 圆线宽度
|
||||
this->m_nTailLen = obj["m_nTailLen"].toDouble(); // 尾线长度
|
||||
this->m_nTailWidth = obj["m_nTailWidth"].toDouble(); // 尾线宽度
|
||||
this->m_crCircle.setNamedColor(obj["m_crCircle"].toString());// 圆线颜色
|
||||
this->m_crTail.setNamedColor(obj["m_crTail"].toString());// 尾线颜色
|
||||
this->m_crPointFill.setNamedColor(obj["m_crPointFill"].toString());// 圆填充色
|
||||
|
||||
// 刻度
|
||||
this->m_vmin = obj["vmin"].toDouble(); // 左刻度
|
||||
this->m_vmax = obj["vmax"].toDouble(); // 右刻度
|
||||
this->m_flStep = obj["m_flStep"].toDouble(); // 深度间隔
|
||||
//
|
||||
this->m_strUnit = obj["Unit"].toString(); // 单位
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FormInfo::initProperty(QJsonObject obj)
|
||||
{
|
||||
m_vmin = obj.value("vmin").toDouble();
|
||||
|
|
@ -484,7 +661,6 @@ QJsonObject FormInfo::makeJson()
|
|||
{
|
||||
//蝌蚪图
|
||||
// 字体
|
||||
//rootObj["m_strAliasNameFont"] = this->m_strAliasNameFont.toString(); // 名称
|
||||
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
|
||||
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
|
||||
// 数据类型选择
|
||||
|
|
@ -530,6 +706,81 @@ QJsonObject FormInfo::makeJson()
|
|||
rootObj["m_pl_custom2"] = this->m_pl_custom2; // 自定义2
|
||||
return rootObj;
|
||||
}
|
||||
else if (m_strLineName == "GANZHUANG.LINE")
|
||||
{
|
||||
//杆状图
|
||||
// 字体
|
||||
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
|
||||
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
|
||||
// 曲线选择
|
||||
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
|
||||
rootObj["m_pl_inclinationCurve"] = this->m_pl_inclinationCurve; // 倾角曲线
|
||||
rootObj["m_pl_GradCurve"] = this->m_pl_GradCurve; // 可信度曲线
|
||||
//杆
|
||||
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
|
||||
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
|
||||
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
|
||||
// 显示控制
|
||||
rootObj["m_pl_minInclination"] = this->m_pl_minInclination; // 最小倾角
|
||||
rootObj["m_pl_maxInclination"] = this->m_pl_maxInclination; // 最大倾角
|
||||
rootObj["m_flGrad1"] = this->m_flGrad1; // 可信度1
|
||||
rootObj["m_flGrad2"] = this->m_flGrad2; // 可信度2
|
||||
//单位
|
||||
rootObj["Unit"] = m_strUnit;
|
||||
rootObj["m_flStep"] = m_flStep;//深度间隔
|
||||
return rootObj;
|
||||
}
|
||||
else if (m_strLineName == "JINGYANKUATA.LINE")
|
||||
{
|
||||
//井眼垮塌矢量图
|
||||
// 字体
|
||||
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
|
||||
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
|
||||
// 曲线选择
|
||||
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
|
||||
rootObj["m_pl_deltaCurve"] = this->m_pl_deltaCurve; // 井径差曲线
|
||||
//蝌蚪符号
|
||||
rootObj["m_nRadius"] = this->m_nRadius; // 圆半径
|
||||
rootObj["m_nCircleWidth"] = this->m_nCircleWidth; // 圆线宽度
|
||||
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
|
||||
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
|
||||
rootObj["m_crCircle"] = this->m_crCircle.name(); // 圆线颜色
|
||||
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
|
||||
rootObj["m_crPointFill"] = this->m_crPointFill.name(); // 圆填充色
|
||||
//
|
||||
rootObj["vmax"] = m_vmax;//右刻度
|
||||
rootObj["vmin"] = m_vmin;//左刻度
|
||||
rootObj["m_flStep"] = m_flStep;//深度间隔
|
||||
rootObj["m_nOffset"] = m_nOffset;//角度偏移
|
||||
//单位
|
||||
rootObj["Unit"] = m_strUnit;
|
||||
return rootObj;
|
||||
}
|
||||
else if (m_strLineName == "XIEFANGWEI.LINE")
|
||||
{
|
||||
//井斜方位图
|
||||
// 字体
|
||||
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
|
||||
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
|
||||
// 曲线选择
|
||||
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
|
||||
rootObj["m_pl_deviCurve"] = this->m_pl_deviCurve; // 井斜曲线
|
||||
//蝌蚪符号
|
||||
rootObj["m_nRadius"] = this->m_nRadius; // 圆半径
|
||||
rootObj["m_nCircleWidth"] = this->m_nCircleWidth; // 圆线宽度
|
||||
rootObj["m_nTailLen"] = this->m_nTailLen; // 尾线长度
|
||||
rootObj["m_nTailWidth"] = this->m_nTailWidth; // 尾线宽度
|
||||
rootObj["m_crCircle"] = this->m_crCircle.name(); // 圆线颜色
|
||||
rootObj["m_crTail"] = this->m_crTail.name(); // 尾线颜色
|
||||
rootObj["m_crPointFill"] = this->m_crPointFill.name(); // 圆填充色
|
||||
//
|
||||
rootObj["vmax"] = m_vmax;//右刻度
|
||||
rootObj["vmin"] = m_vmin;//左刻度
|
||||
rootObj["m_flStep"] = m_flStep;//深度间隔
|
||||
//单位
|
||||
rootObj["Unit"] = m_strUnit;
|
||||
return rootObj;
|
||||
}
|
||||
}
|
||||
else if (m_strType == "JiegutextObject")
|
||||
{
|
||||
|
|
@ -1222,11 +1473,34 @@ void FormInfo::paintEvent(QPaintEvent* event)
|
|||
}
|
||||
}
|
||||
|
||||
if(m_strLineName=="井眼垮塌矢量图"
|
||||
|| m_strLineName=="井斜方位图")
|
||||
//蝌蚪图、杆状图
|
||||
if(m_strLineName == "FRAC_HOLE.TABLE" || m_strLineName=="GANZHUANG.LINE")
|
||||
{
|
||||
painter.drawText(rect.left(), rect.top()+rect.height()/3, rect.width(), rect.height()/3, Qt::AlignCenter, m_strUnit);
|
||||
painter.drawText(rect.left(), rect.top()+rect.height()*2/3, rect.width(), rect.height()/3 ,Qt::AlignCenter, QString::number(m_vmin)+" ~ "+QString::number(m_vmax));
|
||||
int nbay = rect.height() - 5;
|
||||
|
||||
// 显示刻度
|
||||
if (m_bShowScale)
|
||||
{
|
||||
drawScale_Kedou(painter, rect);
|
||||
}
|
||||
QFontMetrics fm2(m_curveUnitFont);
|
||||
QRect tRect = fm2.boundingRect(m_strUnit);
|
||||
painter.drawText(rect.width()/2- tRect.width()/2, nbay - 6, m_strUnit);
|
||||
}
|
||||
|
||||
//井眼垮塌矢量图
|
||||
if(m_strLineName=="JINGYANKUATA.LINE" || m_strLineName=="XIEFANGWEI.LINE")
|
||||
{
|
||||
int nbay = rect.height() - 5;
|
||||
|
||||
// 显示刻度
|
||||
if (m_bShowScale)
|
||||
{
|
||||
drawScale(painter, rect);
|
||||
}
|
||||
QFontMetrics fm2(m_curveUnitFont);
|
||||
QRect tRect = fm2.boundingRect(m_strUnit);
|
||||
painter.drawText(rect.width()/2- tRect.width()/2, nbay - 6, m_strUnit);
|
||||
}
|
||||
|
||||
if(m_strLineName == "深度")
|
||||
|
|
@ -1575,6 +1849,28 @@ void FormInfo::drawScale(QPainter& painter, const QRect& rect)
|
|||
}
|
||||
}
|
||||
|
||||
void FormInfo::drawScale_Kedou(QPainter& painter, const QRect& rect)
|
||||
{
|
||||
int nbay = rect.height() - 5;
|
||||
QVector<QStringList> vecScale;
|
||||
|
||||
vecScale << QStringList({ QString::number(m_pl_minInclination) , QString::number(m_pl_maxInclination) });
|
||||
|
||||
painter.setFont(m_curveScaleFont);
|
||||
QFontMetrics fm1(m_curveScaleFont);
|
||||
QRect textRect = fm1.boundingRect(QString::number(m_pl_minInclination, 'f', 0));
|
||||
int ntxthei = textRect.height() - 4;
|
||||
int nyy = nbay - ntxthei * vecScale.size() - 3;
|
||||
for (int i = 0; i < vecScale.size(); i++)
|
||||
{
|
||||
const QStringList& slist = vecScale.at(i);
|
||||
QRect textRect = fm1.boundingRect(slist.at(1));
|
||||
int y = nyy + (i + 1) * ntxthei;
|
||||
painter.drawText(rect.x() + 3, y, slist.at(0));
|
||||
painter.drawText(rect.width() - textRect.width() - 3, y, slist.at(1));
|
||||
}
|
||||
}
|
||||
|
||||
void FormInfo::paintClassify(QPainter &painter, int compassCenterY)
|
||||
{
|
||||
// 绘制分类
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@ public:
|
|||
|
||||
void initProperty(QJsonObject obj);
|
||||
void initProperty_Kedou(QJsonObject obj);
|
||||
void initProperty_Ganzhuang(QJsonObject obj);
|
||||
void initProperty_Jykt(QJsonObject obj);
|
||||
void initProperty_Denv(QJsonObject obj);
|
||||
|
||||
void paintClassify(QPainter &painter, int compassCenterY);
|
||||
private:
|
||||
|
|
@ -37,6 +40,7 @@ protected:
|
|||
|
||||
// 绘制刻度
|
||||
void drawScale(QPainter& painter, const QRect& rect);
|
||||
void drawScale_Kedou(QPainter& painter, const QRect& rect);
|
||||
|
||||
public slots:
|
||||
void dragEnterEvent(QDragEnterEvent* event);
|
||||
|
|
@ -371,9 +375,17 @@ public:
|
|||
float m_nCircleWidth = 2; // 圆线宽度
|
||||
float m_nTailWidth = 2; // 尾宽度
|
||||
float m_nTailLen = 10; // 尾长
|
||||
QColor m_crCircle = qRgb(0,0,0); //颜色
|
||||
QColor m_crTail = qRgb(0,0,0); //颜色
|
||||
QColor m_crPointFill = qRgb(0,0,0);
|
||||
QColor m_crCircle = qRgb(0,0,0); // 圆线颜色
|
||||
QColor m_crTail = qRgb(0,0,0); // 尾线颜色
|
||||
QColor m_crPointFill = qRgb(0,0,0); // 圆填充色
|
||||
|
||||
//井眼垮塌矢量图
|
||||
QString m_pl_deltaCurve = "CALM"; // 井径差曲线
|
||||
float m_flStep; // 增加深度间隔
|
||||
float m_nOffset; // 角度偏移=0,主应力方向,=90,长轴方向
|
||||
|
||||
//井斜方位图
|
||||
QString m_pl_deviCurve = "DEVI"; // 井斜曲线
|
||||
|
||||
public:
|
||||
void setLineWidth(double dWidth);
|
||||
|
|
|
|||
|
|
@ -71,17 +71,6 @@ FormTrack::FormTrack(QWidget *parent, QString strSlfName, QString strWellName, Q
|
|||
// 深度
|
||||
connect(this, SIGNAL(sig_AddDepth(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)),
|
||||
this, SLOT(s_addDepth(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)));
|
||||
// 杆状图
|
||||
connect(this, SIGNAL(sig_AddGanZhuangTu(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)),
|
||||
this, SLOT(s_addGanZhuangTu(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)));
|
||||
|
||||
// 井眼垮塌矢量图
|
||||
connect(this, SIGNAL(sig_AddJykt(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)),
|
||||
this, SLOT(s_addJykt(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)));
|
||||
|
||||
// 井斜方位图
|
||||
connect(this, SIGNAL(sig_AddDenv(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)),
|
||||
this, SLOT(s_addDenv(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)));
|
||||
|
||||
//岩心图片
|
||||
connect(this, SIGNAL(sig_AddYanXinImage(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)),
|
||||
|
|
@ -265,19 +254,7 @@ void FormTrack::Add(QString strSlfName, QString strWellName, QString strTrackNam
|
|||
else if(strType=="depthObject")
|
||||
{
|
||||
emit sig_AddDepth(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType);
|
||||
}
|
||||
else if(strType=="ganzhuangtuObject")
|
||||
{
|
||||
emit sig_AddGanZhuangTu(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType);
|
||||
}
|
||||
else if(strType=="JyktObject")
|
||||
{
|
||||
emit sig_AddJykt(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType);
|
||||
}
|
||||
else if(strType=="DenvObject")
|
||||
{
|
||||
emit sig_AddDenv(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType);
|
||||
}
|
||||
}
|
||||
// else if(strType=="yanxinImageObject")
|
||||
// {
|
||||
// emit sig_AddYanXinImage(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType);
|
||||
|
|
@ -312,9 +289,10 @@ void FormTrack::Add(QString strSlfName, QString strWellName, QString strTrackNam
|
|||
}
|
||||
}
|
||||
|
||||
FormInfo* FormTrack::AddKedou(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QJsonObject listOtherProperty)
|
||||
FormInfo* FormTrack::AddKedouAndOthers(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QJsonObject listOtherProperty)
|
||||
{
|
||||
if(strLineName == "FRAC_HOLE.TABLE")
|
||||
//蝌蚪图、杆状图、井眼垮塌矢量图、井斜方位图
|
||||
if(strLineName == "FRAC_HOLE.TABLE" || strLineName == "GANZHUANG.LINE" || strLineName == "JINGYANKUATA.LINE" || strLineName == "XIEFANGWEI.LINE")
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -332,7 +310,22 @@ FormInfo* FormTrack::AddKedou(QString strSlfName, QString strWellName, QString s
|
|||
//曲线信息栏
|
||||
FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor);
|
||||
formInfo->m_strUuid = m_strUuid;
|
||||
formInfo->initProperty_Kedou(listOtherProperty);
|
||||
if(strLineName == "FRAC_HOLE.TABLE")
|
||||
{
|
||||
formInfo->initProperty_Kedou(listOtherProperty);
|
||||
}
|
||||
else if(strLineName == "GANZHUANG.LINE")
|
||||
{
|
||||
formInfo->initProperty_Ganzhuang(listOtherProperty);
|
||||
}
|
||||
else if(strLineName == "JINGYANKUATA.LINE")
|
||||
{
|
||||
formInfo->initProperty_Jykt(listOtherProperty);
|
||||
}
|
||||
else if(strLineName == "XIEFANGWEI.LINE")
|
||||
{
|
||||
formInfo->initProperty_Denv(listOtherProperty);
|
||||
}
|
||||
formInfo->m_strAliasName = strAliasName;
|
||||
formInfo->m_strUnit = strUnit;
|
||||
formInfo->m_strScaleType = strScaleType;
|
||||
|
|
@ -347,6 +340,7 @@ FormInfo* FormTrack::AddKedou(QString strSlfName, QString strWellName, QString s
|
|||
ui->tableWidget->setRowHeight(row, 100);
|
||||
//
|
||||
ui->tableWidget->setCellWidget(row, 0, formInfo);
|
||||
return formInfo;
|
||||
}
|
||||
|
||||
FormInfo* FormTrack::setDrawDt(QStringList listdt, QJsonObject obj)
|
||||
|
|
@ -952,106 +946,6 @@ void FormTrack::s_addDepth(QString strSlfName, QString strWellName, QString strT
|
|||
ui->tableWidget->setCellWidget(row, 0, formInfo);
|
||||
}
|
||||
|
||||
void FormTrack::s_addGanZhuangTu(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType)
|
||||
{
|
||||
qDebug() << "FormTrack s_addGanZhuangTu";
|
||||
|
||||
ui->tableWidget->m_strUuid = m_strUuid;
|
||||
int row = ui->tableWidget->rowCount();
|
||||
ui->tableWidget->setRowCount(row + 1);
|
||||
|
||||
//避免出现小滚动条
|
||||
//ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10);
|
||||
//this->resize(g_iOneWidth, 100*(row + 1)+30);
|
||||
|
||||
//曲线信息栏
|
||||
FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor);
|
||||
formInfo->m_strUuid = m_strUuid;
|
||||
formInfo->m_strAliasName = strAliasName;
|
||||
formInfo->m_strUnit = strUnit;
|
||||
formInfo->m_strScaleType = strScaleType;
|
||||
formInfo->m_strType = "ganzhuangtuObject";
|
||||
formInfo->m_nJg = 2;
|
||||
formInfo->setLineWidth(dWidth);
|
||||
formInfo->setVMax(vmax);
|
||||
formInfo->setVMin(vmin);
|
||||
formInfo->setFrontColor(QColor(0,0,0));
|
||||
formInfo->setBackColor(QColor(255,255,255));
|
||||
//设置高度
|
||||
ui->tableWidget->setRowHeight(row, 100);
|
||||
//单元格委托
|
||||
//ui->tableWidget->setItemDelegateForRow(row, m_delegate);
|
||||
//
|
||||
ui->tableWidget->setCellWidget(row, 0, formInfo);
|
||||
}
|
||||
|
||||
void FormTrack::s_addJykt(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType)
|
||||
{
|
||||
qDebug() << "FormTrack s_addJykt";
|
||||
|
||||
ui->tableWidget->m_strUuid = m_strUuid;
|
||||
int row = ui->tableWidget->rowCount();
|
||||
ui->tableWidget->setRowCount(row + 1);
|
||||
|
||||
//避免出现小滚动条
|
||||
//ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10);
|
||||
//this->resize(g_iOneWidth, 100*(row + 1)+30);
|
||||
|
||||
//曲线信息栏
|
||||
FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor);
|
||||
formInfo->m_strUuid = m_strUuid;
|
||||
formInfo->m_strAliasName = strAliasName;
|
||||
formInfo->m_strUnit = strUnit;
|
||||
formInfo->m_strScaleType = strScaleType;
|
||||
formInfo->m_strType = "JyktObject";
|
||||
formInfo->m_nJg = 2;
|
||||
formInfo->setLineWidth(dWidth);
|
||||
formInfo->setVMax(vmax);
|
||||
formInfo->setVMin(vmin);
|
||||
formInfo->setFrontColor(QColor(0,0,0));
|
||||
formInfo->setBackColor(QColor(255,255,255));
|
||||
//设置高度
|
||||
ui->tableWidget->setRowHeight(row, 100);
|
||||
//单元格委托
|
||||
//ui->tableWidget->setItemDelegateForRow(row, m_delegate);
|
||||
//
|
||||
ui->tableWidget->setCellWidget(row, 0, formInfo);
|
||||
}
|
||||
|
||||
|
||||
void FormTrack::s_addDenv(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType)
|
||||
{
|
||||
qDebug() << "FormTrack s_addDenv";
|
||||
|
||||
ui->tableWidget->m_strUuid = m_strUuid;
|
||||
int row = ui->tableWidget->rowCount();
|
||||
ui->tableWidget->setRowCount(row + 1);
|
||||
|
||||
//避免出现小滚动条
|
||||
//ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10);
|
||||
//this->resize(g_iOneWidth, 100*(row + 1)+30);
|
||||
|
||||
//曲线信息栏
|
||||
FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor);
|
||||
formInfo->m_strUuid = m_strUuid;
|
||||
formInfo->m_strAliasName = strAliasName;
|
||||
formInfo->m_strUnit = strUnit;
|
||||
formInfo->m_strScaleType = strScaleType;
|
||||
formInfo->m_strType = "JyktObject";
|
||||
formInfo->m_nJg = 2;
|
||||
formInfo->setLineWidth(dWidth);
|
||||
formInfo->setVMax(vmax);
|
||||
formInfo->setVMin(vmin);
|
||||
formInfo->setFrontColor(QColor(0,0,0));
|
||||
formInfo->setBackColor(QColor(255,255,255));
|
||||
//设置高度
|
||||
ui->tableWidget->setRowHeight(row, 100);
|
||||
//单元格委托
|
||||
//ui->tableWidget->setItemDelegateForRow(row, m_delegate);
|
||||
//
|
||||
ui->tableWidget->setCellWidget(row, 0, formInfo);
|
||||
}
|
||||
|
||||
void FormTrack::s_addYanXinImage(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType)
|
||||
{
|
||||
qDebug() << "FormTrack s_addYanXinImage";
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ public:
|
|||
|
||||
public:
|
||||
void Add(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QStringList listOtherProperty={});
|
||||
FormInfo* AddKedou(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QJsonObject listOtherProperty={});
|
||||
//蝌蚪图
|
||||
FormInfo* AddKedouAndOthers(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QJsonObject listOtherProperty={});
|
||||
|
||||
FormInfo* setDrawDt(QStringList listdt, QJsonObject obj);
|
||||
|
||||
|
|
@ -80,9 +81,6 @@ public slots:
|
|||
void s_delTableLine(QString strUuid, QString strWellName, QString strTrackName, QString strLineName);
|
||||
// 深度
|
||||
void s_addDepth(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType);
|
||||
void s_addGanZhuangTu(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType);
|
||||
void s_addJykt(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType);
|
||||
void s_addDenv(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType);
|
||||
void s_addYanXinImage(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType);
|
||||
void s_addDrawImage(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType);
|
||||
void s_addSantuyibiao(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType);
|
||||
|
|
|
|||
|
|
@ -33,6 +33,12 @@ FormTrackTop::~FormTrackTop()
|
|||
delete ui;
|
||||
}
|
||||
|
||||
void FormTrackTop::setTrackName(QString strTName)
|
||||
{
|
||||
m_strTrackName = strTName;
|
||||
update();
|
||||
}
|
||||
|
||||
// void FormTrackTop::setBorderFlags(BorderFlags flags)
|
||||
// {
|
||||
// m_BorderFlags = flags;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class FormTrackTop : public FormBase
|
|||
public:
|
||||
explicit FormTrackTop(QWidget*, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName="", QColor lineColor=QColor(255,0,0));
|
||||
~FormTrackTop();
|
||||
|
||||
void setTrackName(QString strTName);
|
||||
void setTrackTopPropert(QJsonObject topObj);
|
||||
private:
|
||||
Ui::FormTrackTop *ui;
|
||||
|
|
|
|||
|
|
@ -3667,7 +3667,7 @@ void MainWindowCurve::s_NewGanZhuangTu()
|
|||
QString strSlfName = sret.at(1);
|
||||
|
||||
//新建道
|
||||
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "杆状图", "ganzhuangtuObject", nW);
|
||||
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "GANZHUANG.LINE", "ganzhuangtuObject", nW);
|
||||
}
|
||||
|
||||
void MainWindowCurve::s_roseAc()
|
||||
|
|
@ -3709,98 +3709,31 @@ void MainWindowCurve::s_dcaAc()
|
|||
//井眼垮塌矢量图
|
||||
void MainWindowCurve::s_Jykt()
|
||||
{
|
||||
if(ui->tableWidget_2->columnCount()==0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int column = ui->tableWidget_2->currentColumn();//列编号从0开始
|
||||
if(column<0)
|
||||
{
|
||||
//当前没有选中井
|
||||
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
|
||||
return;
|
||||
}
|
||||
|
||||
if(column%2==0)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
//空白列
|
||||
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
|
||||
return;
|
||||
}
|
||||
|
||||
QStringList sret = this->getSelectWell_New();
|
||||
if (sret.length() <= 0)
|
||||
return;
|
||||
QString strWellName = sret.at(0);
|
||||
//直接从选中的井获取,data记录slf路径
|
||||
QString strSlfName = sret.at(1);
|
||||
|
||||
int iWidth = ui->tableWidget_2->columnWidth(column);
|
||||
|
||||
int nW = 4;
|
||||
//设置列宽
|
||||
ui->tableWidget_2->setColumnWidth(column, iWidth+nW*g_dPixelPerCm+8);
|
||||
QStringList sret = this->insertCol(nW);
|
||||
if (sret.length() <= 0)
|
||||
return;
|
||||
QString strWellName = sret.at(0);
|
||||
//直接从选中的井获取,data记录slf路径
|
||||
QString strSlfName = sret.at(1);
|
||||
|
||||
//新建道
|
||||
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "井眼垮塌矢量图", "JyktObject", nW);
|
||||
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "JINGYANKUATA.LINE", "JyktObject", nW);
|
||||
}
|
||||
|
||||
//井斜方位图
|
||||
void MainWindowCurve::s_Denv()
|
||||
{
|
||||
// QString strSlfName = "";
|
||||
// QString strLeft = m_leftWidgets->getLeftTreeString();
|
||||
// if(strLeft.length() > 0)
|
||||
// {
|
||||
// QStringList list = strLeft.split("#@@#");//QString字符串分割函数
|
||||
// if (list.size() > 3)
|
||||
// {
|
||||
// strSlfName = list[0];
|
||||
// }
|
||||
// }
|
||||
|
||||
if(ui->tableWidget_2->columnCount()==0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int column = ui->tableWidget_2->currentColumn();//列编号从0开始
|
||||
if(column<0)
|
||||
{
|
||||
//当前没有选中井
|
||||
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
|
||||
return;
|
||||
}
|
||||
|
||||
if(column%2==0)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
//空白列
|
||||
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
|
||||
return;
|
||||
}
|
||||
|
||||
QStringList sret = this->getSelectWell_New();
|
||||
if (sret.length() <= 0)
|
||||
return;
|
||||
QString strWellName = sret.at(0);
|
||||
//直接从选中的井获取,data记录slf路径
|
||||
QString strSlfName = sret.at(1);
|
||||
|
||||
int iWidth = ui->tableWidget_2->columnWidth(column);
|
||||
|
||||
int nW = 4;
|
||||
//设置列宽
|
||||
ui->tableWidget_2->setColumnWidth(column, iWidth+nW*g_dPixelPerCm+8);
|
||||
QStringList sret = this->insertCol(nW);
|
||||
if (sret.length() <= 0)
|
||||
return;
|
||||
QString strWellName = sret.at(0);
|
||||
//直接从选中的井获取,data记录slf路径
|
||||
QString strSlfName = sret.at(1);
|
||||
|
||||
//新建道
|
||||
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "井斜方位图", "DenvObject", nW);
|
||||
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "XIEFANGWEI.LINE", "DenvObject", nW);
|
||||
}
|
||||
|
||||
//图像 成图
|
||||
|
|
|
|||
|
|
@ -215,6 +215,12 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel
|
|||
connect(CallManage::getInstance(), SIGNAL(sig_changeGuanD(QString, QString, QString, QString, QString, QString, double)), this, SLOT(s_changeGuanD(QString, QString, QString, QString, QString, QString, double)));
|
||||
//改变蝌蚪图属性
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_changeKedouProperty(QString, QString, QString, QString, QString)), this, SLOT(s_changeKedouProperty(QString, QString, QString, QString, QString)));
|
||||
//改变杆状图属性
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_changeGanzhuangProperty(QString, QString, QString, QString, QString)), this, SLOT(s_changeGanzhuangProperty(QString, QString, QString, QString, QString)));
|
||||
//改变井眼垮塌矢量图属性
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_changeJyktProperty(QString, QString, QString, QString, QString)), this, SLOT(s_changeJyktProperty(QString, QString, QString, QString, QString)));
|
||||
//改变井斜方位图属性
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_changeDenvProperty(QString, QString, QString, QString, QString)), this, SLOT(s_changeDenvProperty(QString, QString, QString, QString, QString)));
|
||||
}
|
||||
|
||||
void QMyCustomPlot::initGeometry(QString strUuid, int nscale, double fW)
|
||||
|
|
@ -640,7 +646,7 @@ QCPColorMap * QMyCustomPlot::updateWave()
|
|||
int ny = m_nSamples;
|
||||
|
||||
m_colorMap->data()->setSize(nx, ny); // 我们希望彩色地图有nx*ny的数据点
|
||||
float f = 264 / 269.0f;
|
||||
float f = 0.99;// 264 / 269.0f;
|
||||
m_colorMap->data()->setRange(QCPRange(0 - m_EDep, 0 - m_SDep), QCPRange(this->m_iX1, this->m_iX2*f));
|
||||
|
||||
for (int xIndex = 0; xIndex < nx; ++xIndex)
|
||||
|
|
@ -2185,8 +2191,23 @@ void QMyCustomPlot::addCrackObject()
|
|||
double depth = editDepth->text().toDouble();
|
||||
QString type = cbbType->currentText();
|
||||
QString showNames = "";
|
||||
auto curve = new TransparentDraggableCrackObject(this, strUuid, -depth, type, showNames);
|
||||
m_mapDraggable_CrackObject[strUuid] = curve;
|
||||
|
||||
if("高导缝" == type)
|
||||
{
|
||||
this->m_cPickFrac->createNewCrack(1 ,depth);
|
||||
}
|
||||
else if("网状缝" == type)
|
||||
{
|
||||
this->m_cPickFrac->createNewCrack(2 ,depth);
|
||||
}
|
||||
else if("孔洞" == type)
|
||||
{
|
||||
this->m_cPickFrac->createNewCrack(3 ,depth);
|
||||
}
|
||||
// auto curve = new CPickFrac(this, strUuid, -depth, type, showNames);
|
||||
|
||||
// m_mapDraggable_CrackObject[strUuid] = curve;
|
||||
|
||||
// ========= 这里就是你要的结果!=========
|
||||
// qDebug() << "深度:" << depth << " 类型:" << type;
|
||||
}
|
||||
|
|
@ -5106,15 +5127,20 @@ void QMyCustomPlot::s_changeDrawProperty(QVariantList vlist)
|
|||
}
|
||||
else if ("左刻度" == strProperty)
|
||||
{
|
||||
|
||||
if (m_colorMap)
|
||||
{
|
||||
m_iX1 = varVal.toFloat();
|
||||
float f = 264 / m_fScaleV;
|
||||
m_colorMap->data()->setValueRange(QCPRange(m_iX1, m_iX2*f));
|
||||
}
|
||||
}
|
||||
else if ("右刻度" == strProperty)
|
||||
{
|
||||
if (m_colorMap)
|
||||
{
|
||||
m_fScaleV = varVal.toFloat();
|
||||
float f = 264 / m_fScaleV;
|
||||
m_colorMap->data()->setValueRange(QCPRange(m_fmin, m_fmax*f));
|
||||
m_fScaleV = varVal.toFloat();
|
||||
float f = 264 / m_fScaleV;
|
||||
m_colorMap->data()->setValueRange(QCPRange(m_iX1, m_iX2*f));
|
||||
}
|
||||
}
|
||||
else if ("最大振幅" == strProperty)
|
||||
|
|
@ -11977,10 +12003,6 @@ void QMyCustomPlot::Draw_Kedou()
|
|||
if (m_bTableData)
|
||||
{
|
||||
ReadFracDef_gaodaofeng();
|
||||
// for (int i = 0 ; i < iFracType ; i++)
|
||||
// {
|
||||
// m_bTypeDraw[i] = true;
|
||||
// }
|
||||
ReadData(m_strSlfName, m_strLineName);
|
||||
}
|
||||
else
|
||||
|
|
@ -12023,7 +12045,7 @@ void QMyCustomPlot::DrawTabDip_Kedou()
|
|||
{
|
||||
float flDepthScale,tempf,flVal;
|
||||
int i,j,n,nPointNum=0,tempi;
|
||||
QRectF rt,rtRect;
|
||||
//QRectF rt,rtRect;
|
||||
float x,y;
|
||||
float dgtord,dr;
|
||||
float flWidth[50];
|
||||
|
|
@ -12212,7 +12234,7 @@ void QMyCustomPlot::DrawDip_Kedou()
|
|||
|
||||
float flDepthScale,tempf,flVal;
|
||||
int nPointNum=0,tempi;
|
||||
QRectF rt,rtRect;
|
||||
//QRectF rt,rtRect;
|
||||
float dgtord,dr;
|
||||
for(int i=0;i<50;i++) flWidth[i]=0;
|
||||
if(m_Value==0 || m_Value2==0)
|
||||
|
|
@ -12220,7 +12242,10 @@ void QMyCustomPlot::DrawDip_Kedou()
|
|||
Refurbish();
|
||||
}
|
||||
if ( m_Value==0 || m_Value2==0 )
|
||||
{
|
||||
this->replot();
|
||||
return ;
|
||||
}
|
||||
|
||||
dgtord=3.14159265/180.;
|
||||
|
||||
|
|
@ -12247,7 +12272,8 @@ void QMyCustomPlot::DrawDip_Kedou()
|
|||
}
|
||||
|
||||
bool bFillBrush = true;
|
||||
if ( m_Value3!=NULL)// && m_Value3 !=0xcdcdcdcd )
|
||||
//可信度
|
||||
if ( m_Value3!=NULL)
|
||||
{
|
||||
flVal = GetData(m_Curve3.RepCode,(char *)&m_Value3[i*m_Curve3.CodeLen]);//置信度
|
||||
if ( flVal < m_flGrad1 )
|
||||
|
|
@ -12337,3 +12363,432 @@ void QMyCustomPlot::s_changeKedouProperty(QString strUuid, QString strSlfName, Q
|
|||
//绘制蝌蚪图
|
||||
Draw_Kedou();
|
||||
}
|
||||
|
||||
//改变杆状图属性
|
||||
void QMyCustomPlot::s_changeGanzhuangProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName)
|
||||
{
|
||||
if(m_strUuid == strUuid &&
|
||||
m_strSlfName == strSlfName &&
|
||||
m_strWellName == strWellName &&
|
||||
m_strTrackName == strTrackName &&
|
||||
m_strLineName == strLineName)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
//绘制杆状图
|
||||
Draw_Ganzhuang();
|
||||
}
|
||||
|
||||
void QMyCustomPlot::Draw_Ganzhuang()
|
||||
{
|
||||
//this->clearGraphs();
|
||||
this->clearItems();
|
||||
|
||||
//
|
||||
FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName);
|
||||
if (pInfo == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//-----------------------------------
|
||||
this->m_Value=NULL;
|
||||
this->m_Value2=NULL;
|
||||
this->m_Value3=NULL;
|
||||
// 曲线选择
|
||||
this->m_csCurveDDIR = pInfo->m_pl_azimuthCurve; // 方位 曲线名
|
||||
this->m_csCurveDANG = pInfo->m_pl_inclinationCurve;//倾角
|
||||
this->m_csCurveGrad = pInfo->m_pl_GradCurve; // 可信度曲线
|
||||
//杆状
|
||||
this->m_nTailLen = pInfo->m_nTailLen; // 尾线长度
|
||||
this->m_nTailWidth = pInfo->m_nTailWidth; // 尾线宽度
|
||||
this->m_crTail = pInfo->m_crTail; // 尾线颜色
|
||||
|
||||
// 显示控制
|
||||
this->m_pl_minInclination = pInfo->m_pl_minInclination; // 最小倾角
|
||||
this->m_pl_maxInclination = pInfo->m_pl_maxInclination; // 最大倾角
|
||||
this->m_flGrad1 = pInfo->m_flGrad1; //可信度1
|
||||
this->m_flGrad2 = pInfo->m_flGrad2; //可信度2
|
||||
|
||||
this->m_flStep = pInfo->m_flStep; // 深度间隔--读数据的间隔
|
||||
|
||||
//读数据
|
||||
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);
|
||||
|
||||
float flWidth[50];
|
||||
int l;
|
||||
float dep;
|
||||
int m_nScaleThinGrid=10;
|
||||
float lstk=2;
|
||||
float dang,ddir;
|
||||
float dg,dy,dx;
|
||||
// 计算位置
|
||||
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 pPenTail(m_crTail,m_nTailWidth);
|
||||
|
||||
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 )
|
||||
{
|
||||
this->replot();
|
||||
return ;
|
||||
}
|
||||
|
||||
dgtord=3.14159265/180.;
|
||||
|
||||
CalcDipWidth(9, flWidth, 1.2, 0, iMyWidth, 1);
|
||||
|
||||
|
||||
while ( 1)
|
||||
{
|
||||
dep = m_SDep + k * m_flStep;//此处使用配置的间隔读取 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;
|
||||
}
|
||||
|
||||
//可信度
|
||||
if ( m_Value3!=NULL)
|
||||
{
|
||||
flVal = GetData(m_Curve3.RepCode,(char *)&m_Value3[i*m_Curve3.CodeLen]);//置信度
|
||||
if ( flVal < m_flGrad1 || flVal > m_flGrad2 )
|
||||
{
|
||||
k++;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
flVal = GetData(m_Curve2.RepCode,(char *)&m_Value2[i*m_Curve2.CodeLen]);//DANG
|
||||
if ( flVal > m_pl_maxInclination || flVal < m_pl_minInclination )
|
||||
{
|
||||
k++;
|
||||
continue;
|
||||
}
|
||||
|
||||
tempi = (int)( flVal /10.);
|
||||
|
||||
tempf = 0.;
|
||||
for (j=0; j<tempi; j++)
|
||||
{
|
||||
tempf += flWidth[j];
|
||||
}
|
||||
x = (x1+x2)/2.0; //160;//= tempf + (flVal-tempi*10.)*(flWidth[j+1]/10.);
|
||||
y = -dep;//起始深度
|
||||
|
||||
//方位
|
||||
dang = GetData(m_Curve.RepCode,(char *)&m_Value[i*m_Curve.CodeLen]);//DDIR
|
||||
dr=dang*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/2.0; //杆长
|
||||
qcpItemLine->m_nRadius = 0; //半径
|
||||
qcpItemLine->m_dr = dr;
|
||||
//
|
||||
QCPItemLine *qcpItemLine1 = new QCPItemLine(this);
|
||||
qcpItemLine1->start->setCoords(y, x);//圆心位置
|
||||
qcpItemLine1->end->setCoords(y, x);//圆心位置
|
||||
qcpItemLine1->setPen(pPenTail);
|
||||
qcpItemLine1->m_bCustom = true;
|
||||
qcpItemLine1->m_nTailLen = m_nTailLen/2.0; //杆长
|
||||
qcpItemLine1->m_nRadius = 0; //半径
|
||||
qcpItemLine1->m_dr = dr+PI;
|
||||
|
||||
k++;
|
||||
}
|
||||
this->replot();
|
||||
}
|
||||
|
||||
//改变井眼垮塌矢量图属性
|
||||
void QMyCustomPlot::s_changeJyktProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName)
|
||||
{
|
||||
if(m_strUuid == strUuid &&
|
||||
m_strSlfName == strSlfName &&
|
||||
m_strWellName == strWellName &&
|
||||
m_strTrackName == strTrackName &&
|
||||
m_strLineName == strLineName)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
//绘制井眼垮塌矢量图
|
||||
Draw_Jykt();
|
||||
}
|
||||
|
||||
void QMyCustomPlot::Draw_Jykt()
|
||||
{
|
||||
//this->clearGraphs();
|
||||
this->clearItems();
|
||||
|
||||
//
|
||||
FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName);
|
||||
if (pInfo == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//-----------------------------------
|
||||
this->m_Value=NULL;
|
||||
this->m_Value2=NULL;
|
||||
this->m_Value3=NULL;
|
||||
// 曲线选择
|
||||
this->m_csCurveDDIR = pInfo->m_pl_azimuthCurve; // 方位 曲线名
|
||||
this->m_csCurveCAL = pInfo->m_pl_deltaCurve;//井径差曲线
|
||||
//蝌蚪符号
|
||||
this->m_nRadius = pInfo->m_nRadius; // 圆半径
|
||||
this->m_nCircleWidth = pInfo->m_nCircleWidth; // 圆线宽度
|
||||
this->m_nTailLen = pInfo->m_nTailLen; // 尾线长度
|
||||
this->m_nTailWidth = pInfo->m_nTailWidth; // 尾线宽度
|
||||
this->m_crCircle = pInfo->m_crCircle; // 圆线颜色
|
||||
this->m_crTail = pInfo->m_crTail; // 尾线颜色
|
||||
this->m_crPointFill=pInfo->m_crPointFill; //圆填充色
|
||||
|
||||
//读数据
|
||||
this->ReadData(m_strSlfName, m_csCurveCAL, 0, &m_Curve);
|
||||
this->ReadData(m_strSlfName, m_csCurveDDIR, 1, &m_Curve2);
|
||||
if ( m_Value==0 || m_Value2==0 )
|
||||
{
|
||||
this->replot();
|
||||
return ;
|
||||
}
|
||||
|
||||
//
|
||||
m_flStep = pInfo->m_flStep; // 深度间隔--读数据的间隔
|
||||
m_nOffset = pInfo->m_nOffset; // 角度偏移=0,主应力方向,=90,长轴方向
|
||||
|
||||
//
|
||||
float vmax = pInfo->m_vmax;
|
||||
float vmin = pInfo->m_vmin;
|
||||
//this->setScaleX(vmin, vmax);
|
||||
this->yAxis->setRange(vmin, vmax);
|
||||
|
||||
//-------------
|
||||
float flVal;
|
||||
float flDep;
|
||||
int i,j,iPoint=0,tempi;
|
||||
//QRectF rt,rtRect;
|
||||
float x,y,x1,y1,x2,y2;
|
||||
float dang,ddir;
|
||||
float dg,dy;
|
||||
float dgtord;
|
||||
float deps;
|
||||
|
||||
//
|
||||
dgtord=3.14159265/180.;
|
||||
QPen pPenTail = QPen(m_crTail, m_nTailWidth);//
|
||||
QPen pPenCircle = QPen(m_crCircle, m_nCircleWidth);// add for:圆线宽度单独使用
|
||||
QBrush brush2(m_crPointFill);
|
||||
|
||||
// 注意映射方式
|
||||
float flVal1=0;
|
||||
if (m_flStep <=0) m_flStep = 0.5;//add for:用户要输入0.5,当输入到0时,系统已经刷新,除0异常 [5/23/2019 16:35 hxb]
|
||||
for (flDep = m_SDep; flDep < m_EDep; flDep += m_flStep)
|
||||
{
|
||||
y = -flDep;//起始深度
|
||||
|
||||
// 绘制圆
|
||||
i=(flDep-m_Curve.StartDepth)/m_Curve.DepLevel+0.5;
|
||||
if(i<0) continue;
|
||||
//
|
||||
j=(flDep-m_Curve2.StartDepth)/m_Curve2.DepLevel+0.5;
|
||||
if(j<0) continue;
|
||||
|
||||
flVal1 = GetData(m_Curve2.RepCode, (char *)&m_Value2[j*m_Curve2.CodeLen]);
|
||||
//角度小于0,不绘制
|
||||
if ( flVal1 <0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
flVal = GetData(m_Curve.RepCode, (char *)&m_Value[i*m_Curve.CodeLen]);
|
||||
x = flVal;
|
||||
|
||||
//圆
|
||||
QCPItemEllipse *qcpItemEllipse = new QCPItemEllipse(this);
|
||||
qcpItemEllipse->setPen(pPenCircle);
|
||||
qcpItemEllipse->m_bCustom = true;
|
||||
qcpItemEllipse->m_nRadius = m_nRadius;
|
||||
qcpItemEllipse->topLeft->setCoords(y, x);//圆心位置
|
||||
qcpItemEllipse->bottomRight->setCoords(y, x);//圆心位置
|
||||
qcpItemEllipse->setBrush(brush2);//填充圆的颜色
|
||||
|
||||
//尾巴
|
||||
flVal=flVal1;
|
||||
flVal+=m_nOffset;
|
||||
if ( flVal >=180.)flVal -= 180;
|
||||
float dr=flVal*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;
|
||||
|
||||
//break;
|
||||
}
|
||||
this->replot();
|
||||
}
|
||||
|
||||
//改变井斜方位图属性
|
||||
void QMyCustomPlot::s_changeDenvProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName)
|
||||
{
|
||||
if(m_strUuid == strUuid &&
|
||||
m_strSlfName == strSlfName &&
|
||||
m_strWellName == strWellName &&
|
||||
m_strTrackName == strTrackName &&
|
||||
m_strLineName == strLineName)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
//绘制井斜方位图
|
||||
Draw_Denv();
|
||||
}
|
||||
|
||||
//井斜方位图
|
||||
void QMyCustomPlot::Draw_Denv()
|
||||
{
|
||||
//this->clearGraphs();
|
||||
this->clearItems();
|
||||
|
||||
//
|
||||
FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName);
|
||||
if (pInfo == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//-----------------------------------
|
||||
this->m_Value=NULL;
|
||||
this->m_Value2=NULL;
|
||||
this->m_Value3=NULL;
|
||||
// 曲线选择
|
||||
this->m_csCurveAZIM = pInfo->m_pl_azimuthCurve; // 方位 曲线名
|
||||
this->m_csCurveDEVI = pInfo->m_pl_deviCurve; // 井斜曲线
|
||||
//蝌蚪符号
|
||||
this->m_nRadius = pInfo->m_nRadius; // 圆半径
|
||||
this->m_nCircleWidth = pInfo->m_nCircleWidth; // 圆线宽度
|
||||
this->m_nTailLen = pInfo->m_nTailLen; // 尾线长度
|
||||
this->m_nTailWidth = pInfo->m_nTailWidth; // 尾线宽度
|
||||
this->m_crCircle = pInfo->m_crCircle; // 圆线颜色
|
||||
this->m_crTail = pInfo->m_crTail; // 尾线颜色
|
||||
this->m_crPointFill=pInfo->m_crPointFill; //圆填充色
|
||||
|
||||
//读数据
|
||||
this->ReadData(m_strSlfName, m_csCurveAZIM, 0, &m_Curve);
|
||||
this->ReadData(m_strSlfName, m_csCurveDEVI, 1, &m_Curve2);
|
||||
if ( m_Value==0 || m_Value2==0 )
|
||||
{
|
||||
this->replot();
|
||||
return ;
|
||||
}
|
||||
|
||||
//
|
||||
m_flStep = pInfo->m_flStep; // 深度间隔--读数据的间隔
|
||||
|
||||
//
|
||||
float vmax = pInfo->m_vmax;
|
||||
float vmin = pInfo->m_vmin;
|
||||
//this->setScaleX(vmin, vmax);
|
||||
this->yAxis->setRange(vmin, vmax);
|
||||
|
||||
//
|
||||
QPen pPenTail(m_crTail,m_nTailWidth);
|
||||
QPen pPenCircle(m_crCircle,m_nCircleWidth);
|
||||
QBrush cBrush(m_crPointFill);
|
||||
|
||||
float tempf,flVal;
|
||||
int i,j,nPointNum=0,tempi;
|
||||
QRectF rt,rtRect;
|
||||
float x,y;
|
||||
float dgtord,dr;
|
||||
|
||||
// 计算显示深度
|
||||
tempf = (m_EDep - m_SDep)/m_Rlev + 0.5;
|
||||
nPointNum = tempf+1;
|
||||
if ( nPointNum <= 1 ) return ;
|
||||
dgtord=3.14159265/180.;
|
||||
|
||||
QBrush brush2(QColor(qRgb(0,0,0)));
|
||||
{
|
||||
for (float dep=m_SDep; dep<m_EDep; dep+=m_flStep)
|
||||
{
|
||||
i=(dep-m_Curve2.StartDepth)/m_Curve2.DepLevel+0.5;
|
||||
if(i<0) continue;
|
||||
|
||||
flVal = GetData(m_Curve2.RepCode,(char *)&m_Value2[i*m_Curve2.CodeLen]);
|
||||
|
||||
x = flVal;
|
||||
y = -dep;//起始深度
|
||||
|
||||
QCPItemEllipse *qcpItemEllipse = new QCPItemEllipse(this);
|
||||
qcpItemEllipse->setPen(pPenCircle);
|
||||
qcpItemEllipse->m_bCustom = true;
|
||||
qcpItemEllipse->m_nRadius = m_nRadius;
|
||||
qcpItemEllipse->topLeft->setCoords(y, x);//圆心位置
|
||||
qcpItemEllipse->bottomRight->setCoords(y, x);//圆心位置
|
||||
qcpItemEllipse->setBrush(cBrush);//填充圆的颜色
|
||||
|
||||
//
|
||||
flVal = GetData(m_Curve.RepCode,(char *)&m_Value[i*m_Curve.CodeLen]);
|
||||
dr=flVal*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;
|
||||
}
|
||||
}
|
||||
this->replot();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,10 +5,12 @@
|
|||
#include "LogIO.h"
|
||||
#include "QCPSizeHandleManager.h"
|
||||
#include "qtColorSchemeComboBox.h"
|
||||
#include "PickFrac.h"
|
||||
|
||||
#pragma execution_character_set("utf-8")
|
||||
|
||||
const int iFracType=15;
|
||||
const int iFracType = 15;
|
||||
class CPickFrac;
|
||||
|
||||
//
|
||||
#define SideWallCoreWidth 1.2
|
||||
|
|
@ -677,6 +679,15 @@ public slots:
|
|||
//改变蝌蚪图属性
|
||||
void s_changeKedouProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
|
||||
|
||||
//改变杆状图属性
|
||||
void s_changeGanzhuangProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
|
||||
|
||||
//改变井眼垮塌矢量图属性
|
||||
void s_changeJyktProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
|
||||
|
||||
//改变井斜方位图属性
|
||||
void s_changeDenvProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
|
||||
|
||||
public:
|
||||
//蝌蚪图重绘网格线
|
||||
bool mKedou = false;
|
||||
|
|
@ -706,6 +717,11 @@ public:
|
|||
float m_SDep,m_EDep,m_Rlev;
|
||||
int m_nSamples = 0;
|
||||
|
||||
//井眼垮塌矢量图
|
||||
QString m_csCurveCAL;
|
||||
float m_flStep;// 增加深度间隔
|
||||
float m_nOffset; // 角度偏移=0,主应力方向,=90,长轴方向
|
||||
|
||||
// 频率统计图 csCurveGrad曲线名 LeftVal3最小值 RightVal3最大值 nArc扇形 nR圆半径 crArc圆颜色 nArcLineWidth圆线宽度 bFill是否填充
|
||||
void drawFgrq(bool bTableData, QString csCurveDDIR, QString csCurveDANG, QString csCurveGrad, double LeftVal3, double RightVal3, int nArc, double nR, QColor crArc, int nArcLineWidth, bool bFill, QColor crFill,
|
||||
int lineNumber, double lineHeight, int lineThickness, QColor lineColor, bool drawAnnotation, bool drawHistogram,
|
||||
|
|
@ -732,7 +748,7 @@ public:
|
|||
|
||||
void addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, const QPointF& p1, const QPointF& p2, const QPen& wPen);
|
||||
|
||||
//蝌蚪
|
||||
//蝌蚪图
|
||||
double m_pl_minInclination = 0; // 最小倾角
|
||||
double m_pl_maxInclination = 90; // 最大倾角
|
||||
float m_flGrad1,m_flGrad2; // 可信度
|
||||
|
|
@ -746,8 +762,21 @@ public:
|
|||
void DrawDip_Kedou();
|
||||
void DrawTabDip_Kedou();
|
||||
|
||||
//读取高导缝等配置
|
||||
void ReadFracDef_gaodaofeng();
|
||||
|
||||
//杆状图
|
||||
void Draw_Ganzhuang();
|
||||
|
||||
//井眼垮塌矢量图
|
||||
void Draw_Jykt();
|
||||
|
||||
//井斜方位图
|
||||
QString m_csCurveAZIM,m_csCurveDEVI; // 方位曲线/井斜曲线
|
||||
void Draw_Denv();
|
||||
|
||||
CPickFrac *m_cPickFrac;
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user