libkpl  6.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) 2024
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:32
Alignment
Text alignment.
Definition textitem.h:35
@ AlignLeft
Aligns at left side.
Definition textitem.h:36
3D item class.
Definition threeditem.h:31