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
Arc item class.
Definition: arcitem.h:29
3D arrayitem class.
Definition: array3ditem.h:30
Array item class.
Definition: arrayitem.h:37
Arrow item class.
Definition: arrowitem.h:33
Ellipse item class.
Definition: ellipseitem.h:29
Frame item class.
Definition: frameitem.h:34
3D function item class.
Definition: fun3ditem.h:29
Function item class.
Definition: funitem.h:40
Image item class.
Definition: imageitem.h:30
FillStyle
Fill styles.
Definition: kplitem.h:45
@ NoBrush
No brush pattern.
Definition: kplitem.h:46
Symbol
Symbol types.
Definition: kplitem.h:83
Legend item class.
Definition: legenditem.h:37
Line item class.
Definition: lineitem.h:31
PS graphics class.
Definition: psgraph.h:46
void window(double x0, double width, double y0, double height)
Sets position and size of the data window.
void setColorFrame(unsigned color)
Sets color for frame.
void resetDashOffset()
Resets offset for dashed lines.
void finish()
Finishes plot.
static const double pts
Points per cm.
Definition: psgraph.h:121
PSGraph(QTextStream *stream, const QList< QGraphicsItem * > &list, const QSizeF &size, bool landscape=false, bool eps=true)
Constructor.
void drawRect(RectItem *item)
Plots rectangle item.
void setDir(double dir)
Sets rotation angle.
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.
void drawEllipse(EllipseItem *item)
Plots ellipse item.
void setColorData(unsigned color)
Sets color for data plotting.
void drawFunc(FunItem *item)
Plots function item.
void labelY(const QString &text, int exp, bool yRight)
Plots y axis label.
void drawLine(LineItem *item)
Plots line item.
void drawParFunc(ParFunItem *item)
Plots parametric function item.
void drawText(TextItem *item)
Plots text item.
void draw3D(ThreeDItem *item)
Plots 3D item.
void drawArrow(ArrowItem *item)
Plots arrow item.
void drawText(const QString &text, double x, double y, TextItem::Alignment alignment=TextItem::AlignLeft)
Plots text.
void drawArc(ArcItem *item)
Plots arc item.
double setRelSize(double m_relSize)
Sets relative size of item.
void drawArray(ArrayItem *item)
Plots array item.
void drawFunc3D(Fun3DItem *item)
Plots 3D function item.
void scale(double xMin, double xMax, double yMin, double yMax, bool logX=false, bool logY=false)
Scales data window to user units.
void drawSpline(SplineItem *item)
Plots spline item.
void setSymbol(KplItem::Symbol symbol)
Sets symbol type.
void drawImage(ImageItem *item)
Plots image item.
void psStr(const QString &text)
Converts to PostScript string.
void setProperties(ScaledItem *item)
Sets color and symbol type for array and function items.
~PSGraph()
Destructor.
void labelX(const QString &text, int exp, bool xTop)
Plots x axis label.
void drawItems(const QList< QGraphicsItem * > &list)
Plots items.
void drawLegend(LegendItem *item)
Plots legend item.
void setColorGrid(unsigned color)
Sets color for grid and tics.
void cm2r(double xcm, double ycm, double fx, double fy, double *xu, double *yu) const
Converts from centimeters to user units.
void drawArray3D(Array3DItem *item)
Plots 3D array item.
void drawFrame(FrameItem *item)
Plots frame item.
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.
PSGraph(QTextStream *stream, const QSizeF &size, const QPointF &topRight=QPointF(), const QPointF &bottomLeft=QPointF(), bool landscape=false, bool eps=true)
Constructor.
void drawScaleBar(ScaleBarItem *item)
Plots scale bar item.
void prolog(bool landscape, bool eps, const QPointF &topRight=QPointF(), const QPointF &bottomLeft=QPointF())
Writes PostScript prolog.
Parametric function item class.
Definition: parfunitem.h:33
Rectangle item class.
Definition: rectitem.h:29
Scale bar item class.
Definition: scalebaritem.h:30
Scaled item class.
Definition: scaleditem.h:25
Spline item class.
Definition: splineitem.h:29
Text item class.
Definition: textitem.h:30
Alignment
Text alignment.
Definition: textitem.h:33
@ AlignLeft
Aligns at left side.
Definition: textitem.h:34
3D item class.
Definition: threeditem.h:31