libkpl  5.0
A Library for Graphical Presentation of Data Sets and Functions
psgraph.h
1 //
2 // C++ Interface: psgraph
3 //
4 // Description:
5 //
6 //
7 // Author: Werner Stille <kpl@werner-stille.de>, (C) 2017
8 //
9 // Copyright: See COPYING file that comes with this distribution
10 //
11 //
12 #ifndef PSGRAPH_H
13 #define PSGRAPH_H
14 
15 #include <QPointF>
16 #include <QSizeF>
17 #include "textitem.h"
18 
19 class QGraphicsItem;
20 class QTextStream;
21 class ArcItem;
22 class ArrayItem;
23 class Array3DItem;
24 class ArrowItem;
25 class EllipseItem;
26 class FrameItem;
27 class FunItem;
28 class Fun3DItem;
29 class ImageItem;
30 class LegendItem;
31 class LineItem;
32 class ParFunItem;
33 class RectItem;
34 class ScaleBarItem;
35 class ScaledItem;
36 class SplineItem;
37 class TextItem;
38 class ThreeDItem;
39 
45 class Q_DECL_EXPORT PSGraph
46 {
47 public:
56  PSGraph(QTextStream* stream, const QList<QGraphicsItem*>& list,
57  const QSizeF& size, bool landscape = false, bool eps = true);
67  PSGraph(QTextStream* stream, const QSizeF& size,
68  const QPointF& topRight = QPointF(),
69  const QPointF& bottomLeft = QPointF(), bool landscape = false,
70  bool eps = true);
85  void drawArray(const double* x, const double* y, double fx, double fy, int n,
87  double xOff = 0, double yOff = 0, bool clip = true);
92  void drawItems(const QList<QGraphicsItem*>& list);
100  void drawText(const QString& text, double x, double y,
103  void finish();
108  void setColorData(unsigned color);
113  void setDir(double dir);
119  double setRelSize(double m_relSize);
121  static const double pts;
122 
123 protected:
133  void cm2r(double xcm, double ycm, double fx, double fy, double* xu,
134  double* yu) const;
139  void draw3D(ThreeDItem* item);
144  void drawArc(ArcItem* item);
149  void drawArray(ArrayItem* item);
159  void drawArrow(ArrowItem* item);
177  void drawErrorBars(const double* x, const double* y, const double* errors,
178  double fx, double fy, int n, double xOff = 0,
179  double yOff = 0, bool clip = true);
184  void drawFrame(FrameItem* item);
189  void drawFunc(FunItem* item);
194  void drawFunc3D(Fun3DItem* item);
199  void drawImage(ImageItem* item);
204  void drawLegend(LegendItem* item);
209  void drawLine(LineItem* item);
214  void drawParFunc(ParFunItem* item);
219  void drawRect(RectItem* item);
229  void drawSpline(SplineItem* item);
234  void drawText(TextItem* item);
241  void labelX(const QString& text, int exp, bool xTop);
248  void labelY(const QString& text, int exp, bool yRight);
256  void prolog(bool landscape, bool eps,
257  const QPointF& topRight = QPointF(),
258  const QPointF& bottomLeft = QPointF());
263  void psStr(const QString& text);
275  void scale(double xMin, double xMax, double yMin, double yMax,
276  bool logX = false, bool logY = false);
281  void setColorFrame(unsigned color);
286  void setColorGrid(unsigned color);
304  void window(double x0, double width, double y0, double height);
305  bool m_logX, m_logY;
306  KplItem::Symbol m_symbol;
307  double m_x0, m_y0, m_width, m_height, m_xMin, m_yMin, m_xMax, m_yMax,
308  m_relSize;
309  QTextStream* ts;
310  QSizeF m_size;
311 };
312 
313 #endif
PSGraph::drawParFunc
void drawParFunc(ParFunItem *item)
Plots parametric function item.
EllipseItem
Ellipse item class.
Definition: ellipseitem.h:29
PSGraph::setProperties
void setProperties(ScaledItem *item)
Sets color and symbol type for array and function items.
LineItem
Line item class.
Definition: lineitem.h:31
PSGraph::setRelSize
double setRelSize(double m_relSize)
Sets relative size of item.
PSGraph::drawFunc
void drawFunc(FunItem *item)
Plots function item.
PSGraph::draw3D
void draw3D(ThreeDItem *item)
Plots 3D item.
PSGraph::setDir
void setDir(double dir)
Sets rotation angle.
PSGraph::drawErrorBars
void drawErrorBars(const double *x, const double *y, const double *errors, double fx, double fy, int n, double xOff=0, double yOff=0, bool clip=true)
Plots error bars for array item.
KplItem::FillStyle
FillStyle
Fill styles.
Definition: kplitem.h:45
PSGraph::drawArray
void drawArray(ArrayItem *item)
Plots array item.
ParFunItem
Parametric function item class.
Definition: parfunitem.h:33
PSGraph::psStr
void psStr(const QString &text)
Converts to PostScript string.
Array3DItem
3D arrayitem class.
Definition: array3ditem.h:30
PSGraph::drawLegend
void drawLegend(LegendItem *item)
Plots legend item.
SplineItem
Spline item class.
Definition: splineitem.h:29
LegendItem
Legend item class.
Definition: legenditem.h:37
PSGraph::labelY
void labelY(const QString &text, int exp, bool yRight)
Plots y axis label.
PSGraph::cm2r
void cm2r(double xcm, double ycm, double fx, double fy, double *xu, double *yu) const
Converts from centimeters to user units.
PSGraph::drawImage
void drawImage(ImageItem *item)
Plots image item.
ScaledItem
Scaled item class.
Definition: scaleditem.h:25
PSGraph::drawScaleBar
void drawScaleBar(ScaleBarItem *item)
Plots scale bar item.
PSGraph::window
void window(double x0, double width, double y0, double height)
Sets position and size of the data window.
PSGraph::drawText
void drawText(TextItem *item)
Plots text item.
ArrowItem
Arrow item class.
Definition: arrowitem.h:33
PSGraph::drawEllipse
void drawEllipse(EllipseItem *item)
Plots ellipse item.
ThreeDItem
3D item class.
Definition: threeditem.h:31
PSGraph::PSGraph
PSGraph(QTextStream *stream, const QSizeF &size, const QPointF &topRight=QPointF(), const QPointF &bottomLeft=QPointF(), bool landscape=false, bool eps=true)
Constructor.
PSGraph::PSGraph
PSGraph(QTextStream *stream, const QList< QGraphicsItem * > &list, const QSizeF &size, bool landscape=false, bool eps=true)
Constructor.
PSGraph::prolog
void prolog(bool landscape, bool eps, const QPointF &topRight=QPointF(), const QPointF &bottomLeft=QPointF())
Writes PostScript prolog.
PSGraph::setSymbol
void setSymbol(KplItem::Symbol symbol)
Sets symbol type.
PSGraph::drawText
void drawText(const QString &text, double x, double y, TextItem::Alignment alignment=TextItem::AlignLeft)
Plots text.
ScaleBarItem
Scale bar item class.
Definition: scalebaritem.h:30
PSGraph::drawArc
void drawArc(ArcItem *item)
Plots arc item.
ArcItem
Arc item class.
Definition: arcitem.h:29
PSGraph::drawSpline
void drawSpline(SplineItem *item)
Plots spline item.
KplItem::NoBrush
@ NoBrush
No brush pattern.
Definition: kplitem.h:46
PSGraph::drawArray3D
void drawArray3D(Array3DItem *item)
Plots 3D array item.
PSGraph::setColorData
void setColorData(unsigned color)
Sets color for data plotting.
PSGraph::~PSGraph
~PSGraph()
Destructor.
PSGraph::drawFrame
void drawFrame(FrameItem *item)
Plots frame item.
PSGraph::scale
void scale(double xMin, double xMax, double yMin, double yMax, bool logX=false, bool logY=false)
Scales data window to user units.
ImageItem
Image item class.
Definition: imageitem.h:30
PSGraph::pts
static const double pts
Points per cm.
Definition: psgraph.h:121
FunItem
Function item class.
Definition: funitem.h:40
TextItem::AlignLeft
@ AlignLeft
Aligns at left side.
Definition: textitem.h:34
Fun3DItem
3D function item class.
Definition: fun3ditem.h:29
PSGraph::setColorFrame
void setColorFrame(unsigned color)
Sets color for frame.
RectItem
Rectangle item class.
Definition: rectitem.h:29
KplItem::Symbol
Symbol
Symbol types.
Definition: kplitem.h:83
PSGraph::drawFunc3D
void drawFunc3D(Fun3DItem *item)
Plots 3D function item.
PSGraph::setColorGrid
void setColorGrid(unsigned color)
Sets color for grid and tics.
PSGraph
PS graphics class.
Definition: psgraph.h:46
PSGraph::resetDashOffset
void resetDashOffset()
Resets offset for dashed lines.
PSGraph::labelX
void labelX(const QString &text, int exp, bool xTop)
Plots x axis label.
TextItem::Alignment
Alignment
Text alignment.
Definition: textitem.h:33
PSGraph::drawArrow
void drawArrow(ArrowItem *item)
Plots arrow item.
FrameItem
Frame item class.
Definition: frameitem.h:34
TextItem
Text item class.
Definition: textitem.h:30
ArrayItem
Array item class.
Definition: arrayitem.h:37
PSGraph::drawItems
void drawItems(const QList< QGraphicsItem * > &list)
Plots items.
PSGraph::drawArray
void drawArray(const double *x, const double *y, double fx, double fy, int n, KplItem::FillStyle fillStyle=KplItem::NoBrush, double xOff=0, double yOff=0, bool clip=true)
Plots array item.
PSGraph::drawRect
void drawRect(RectItem *item)
Plots rectangle item.
PSGraph::drawLine
void drawLine(LineItem *item)
Plots line item.
PSGraph::finish
void finish()
Finishes plot.