logplus/logPlus/LogmuditemDrawer.h

91 lines
3.2 KiB
C++

#ifndef LOGMUDITEMDRAWER_H_
#define LOGMUDITEMDRAWER_H_
#include <QPainter>
#include "LogmudResultItem.h"
class LogmudItemDrawer
{
public:
LogmudItemDrawer();
enum AxisType
{
AXIS_LINEAR = 0,//线性坐标系
AXIS_LOGARITHMIC = 1,//对数坐标系
AXIS_DIP = 2, //倾角坐标系
};
/**
* @brief 绘制每一个井壁取心分段的方法
* @param painter 绘制设备
* @param item 离散分段数据
* @param state
* @param itemBouding
* @param reasonableRect
* @param IsWellSectonHorizonLayout
*/
virtual QPointF DrawItem(QPainter* painter, LogmudResultItem* item,
const QRectF& rt,
bool IsWellSectonHorizonLayout) const;
private:
// LogmudItemDrawer.h 中添加的函数声明
void DrawXAxisLogarithmicGrid(QPainter* painter, float timemin, float timemax,
float dd, float w, float h, QRectF rt, QPointF pt,
QFontMetrics& fm, float& lscalelen) const;
void DrawXAxisLinearGrid(QPainter* painter, float timemin, float timemax,
float dd, float len, float h, QRectF rt, QPointF pt,
QPointF pt1, QFontMetrics& fm, int fnum) const;
void DrawYAxisLogarithmicGrid(QPainter* painter, float minVal, float maxVal,
float dd, float len, float h, QRectF rt, QPointF pt,
QFontMetrics& fm, float& lscalelen) const;
void DrawYAxisLinearGrid(QPainter* painter, float minVal, float maxVal,
float dd, float len, float h, QRectF rt, QPointF pt,
QFontMetrics& fm, float& lscalelen, int fnum) const;
void DrawDepthAndAxisLabels(QPainter* painter, float depth, float dd, float w, float h,
QRectF rt, QPointF pt, QFontMetrics& fm,
float lscalelen,
const QString& xAxisTitle = "", const QString& yAxisTitle = "") const;
void DrawDataPoint(QPainter* painter, float wh, float bh, float timemin, float timemax,
float minVal, float maxVal, float dd, float len, float h,
QRectF rt, QPointF pt1, int logarithmic) const;
private:
ViewInfoLogmud *m_pViewInfoLogmud;
QString cclimgpath;
QBrush SHOTImg;
QMap<QString,QString> zoneOrder;
bool m_bisHi = true;
bool m_isOneScale = true;
float m_fHei = 4;// m_pViewInfoLogmud->GetrHeight();
float m_fTimemin = 0;// m_pViewInfoLogmud->GetTimeMin();// 获取时间最小值
float m_fTimemax = 120;// m_pViewInfoLogmud->GetTimeMax();// 获取时间最大值
int m_nLogarithmic = 0;
float m_LeftVal = 0;
float m_RightVal = 139.7f;
int m_nTLogarithmic = 0;
int m_xGrid = 5;
int m_yGrid = 5;
int m_isBottom = 1;
QString m_CurveName = "伽马(API)";
QString m_TimeName = "时间(μs)";
QColor m_Color = Qt::black;
QColor m_CGrid = Qt::black;
/**
*@brief 岩性图片容器
*/
};
#endif