在 QwtSpline 中有两种不同类型的样条,但我看不出这两种类型之间有什么区别。
QwtSpline 总是创建一个样条,就像图片左侧的那样。 但我想要一个 Spline,就像右边的那个。
我的代码如下:
QwtSpline spline;
QPolygonF polygon;
QVector<QPointF> result;
polygon.append(startPoint);
polygon.append(rotatedPoint);
polygon.append(endPoint);
spline.setPoints(polygon);
for(double i = startPoint.rx(); i < endPoint.rx(); i++)
{
result << QPointF(i, spline.value(i));
}
result << QPointF(endPoint.rx(), spline.value(endPoint.rx()));
我想做的是将图片右侧的样条绘制到 QwtPlot 中。也许有一种更简单的方法来解决我的问题,而不是创建一个 QwtSpline 迭代它以创建一个 QwtSpline 上的每个点的 QwtCurve。
如果更简单的话,绘制贝塞尔曲线到QwtPlot,那没问题,贝塞尔曲线对我来说会更容易。我只取了样条,因为我在Qwt中没有找到贝塞尔曲线。
最佳答案
从分支之一尝试 Qwt >= 6.2。它具有多种样条插值算法的全新实现。
但如果只是绘制贝塞尔曲线,您也可以使用 QwtShapeItem,它显示的是 QPainterPath。当然,您也可以使用 QPainterPath 从贝塞尔曲线创建 QPolygon,然后使用 QwtPlotCurve。
关于c++ - 如何使用 QwtSpline 创建 B 样条曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52004575/