QWT API (中文) 7.0.1
Qt绘图库 - 中文API文档
载入中...
搜索中...
未找到
qwt_spline_parametrization.h
1/******************************************************************************
2 * Qwt Widget Library
3 * Copyright (C) 1997 Josef Wilgen
4 * Copyright (C) 2002 Uwe Rathmann
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the Qwt License, Version 1.0
8 *
9 * Modified by ChenZongYan in 2024 <czy.t@163.com>
10 * Summary of major modifications (see ChangeLog.md for full history):
11 * 1. CMake build system & C++11 throughout.
12 * 2. Core panner/ zoomer refactored:
13 * - QwtPanner → QwtCachePanner (pixmap-cache version)
14 * - New real-time QwtPlotPanner derived from QwtPicker.
15 * 3. Zoomer supports multi-axis.
16 * 4. Parasite-plot framework:
17 * - QwtFigure, QwtPlotParasiteLayout, QwtPlotTransparentCanvas,
18 * - QwtPlotScaleEventDispatcher, built-in pan/zoom on axis.
19 * 5. New picker: QwtPlotSeriesDataPicker (works with date axis).
20 * 6. Raster & color-map extensions:
21 * - QwtGridRasterData (2-D table + interpolation)
22 * - QwtLinearColorMap::stopColors(), stopPos() API rename.
23 * 7. Bar-chart: expose pen/brush control.
24 * 8. Amalgamated build: single QwtPlot.h / QwtPlot.cpp pair in src-amalgamate.
25 *****************************************************************************/
26
27#ifndef QWT_SPLINE_PARAMETRIZATION_H
28#define QWT_SPLINE_PARAMETRIZATION_H
29
30#include "qwt_global.h"
31#include "qwt_math.h"
32
33#include <qpoint.h>
34
87{
88 public:
90 enum Type
91 {
97
103
115
125
137
138
147 ParameterManhattan
148 };
149
150 // Constructor with parametrization type
151 explicit QwtSplineParametrization( int type );
152 // Destructor
154
155 // Get parametrization type
156 int type() const;
157
158 // Calculate parameter value increment for 2 points
159 virtual double valueIncrement( const QPointF&, const QPointF& ) const;
160
161 static double valueIncrementX( const QPointF&, const QPointF& );
162 static double valueIncrementY( const QPointF&, const QPointF& );
163 static double valueIncrementUniform( const QPointF&, const QPointF& );
164 static double valueIncrementChordal( const QPointF&, const QPointF& );
165 static double valueIncrementCentripetal( const QPointF&, const QPointF& );
166 static double valueIncrementManhattan( const QPointF&, const QPointF& );
167
168 private:
169 const int m_type;
170};
171
192 const QPointF& point1, const QPointF& point2 )
193{
194 return point2.x() - point1.x();
195}
196
217 const QPointF& point1, const QPointF& point2 )
218{
219 return point2.y() - point1.y();
220}
221
242 const QPointF& point1, const QPointF& point2 )
243{
244 Q_UNUSED( point1 )
245 Q_UNUSED( point2 )
246
247 return 1.0;
248}
249
270 const QPointF& point1, const QPointF& point2 )
271{
272 const double dx = point2.x() - point1.x();
273 const double dy = point2.y() - point1.y();
274
275 return std::sqrt( dx * dx + dy * dy );
276}
277
298 const QPointF& point1, const QPointF& point2 )
299{
300 return std::sqrt( valueIncrementChordal( point1, point2 ) );
301}
302
323 const QPointF& point1, const QPointF& point2 )
324{
325 return qAbs( point2.x() - point1.x() ) + qAbs( point2.y() - point1.y() );
326}
327
328#endif
用于样条插值的曲线参数化
Definition qwt_spline_parametrization.h:87
static double valueIncrementChordal(const QPointF &, const QPointF &)
计算两个点的 ParameterChordal 值增量
Definition qwt_spline_parametrization.h:269
static double valueIncrementCentripetal(const QPointF &, const QPointF &)
计算两个点的 ParameterCentripetal 值增量
Definition qwt_spline_parametrization.h:297
static double valueIncrementX(const QPointF &, const QPointF &)
计算两个点的 ParameterX 值增量
Definition qwt_spline_parametrization.h:191
static double valueIncrementUniform(const QPointF &, const QPointF &)
计算 ParameterUniform 值增量
Definition qwt_spline_parametrization.h:241
Type
Parametrization type
Definition qwt_spline_parametrization.h:91
@ ParameterY
No parametrization: t[i] = y[i]
Definition qwt_spline_parametrization.h:102
@ ParameterCentripetal
Centripetal parametrization
Definition qwt_spline_parametrization.h:136
@ ParameterX
No parametrization: t[i] = x[i]
Definition qwt_spline_parametrization.h:96
@ ParameterUniform
Uniform parametrization: t[i] = i;
Definition qwt_spline_parametrization.h:114
@ ParameterChordal
Parametrization using the chordal length between two control points
Definition qwt_spline_parametrization.h:124
static double valueIncrementManhattan(const QPointF &, const QPointF &)
计算两个点的 ParameterManhattan 值增量
Definition qwt_spline_parametrization.h:322
static double valueIncrementY(const QPointF &, const QPointF &)
计算两个点的 ParameterY 值增量
Definition qwt_spline_parametrization.h:216