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
19class QGraphicsItem;
20class QTextStream;
21class ArcItem;
22class ArrayItem;
23class Array3DItem;
24class ArrowItem;
25class EllipseItem;
26class FrameItem;
27class FunItem;
28class Fun3DItem;
29class ImageItem;
30class LegendItem;
31class LineItem;
32class ParFunItem;
33class RectItem;
34class ScaleBarItem;
35class ScaledItem;
36class SplineItem;
37class TextItem;
38class ThreeDItem;
39
45class Q_DECL_EXPORT PSGraph
46{
47public:
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
123protected:
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);
199 void drawImage(ImageItem* item);
209 void drawLine(LineItem* item);
219 void drawRect(RectItem* 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