我想使用Android图形绘制无缝曲线,类似于以下方式:
canvas.quadTo(.....);
Android参考文档提到了使用贝塞尔曲线的方法。
但是该方法不支持绘制具有超过三个点的曲线。
P1,P2,P3,P4,P5
我该如何绘制以下这样的曲线?
我听说这叫做“非线性曲线拟合”。
Android是否有可用的曲线拟合库?
我想使用Android图形绘制无缝曲线,类似于以下方式:
canvas.quadTo(.....);
Android参考文档提到了使用贝塞尔曲线的方法。
但是该方法不支持绘制具有超过三个点的曲线。
P1,P2,P3,P4,P5
我该如何绘制以下这样的曲线?
我听说这叫做“非线性曲线拟合”。
Android是否有可用的曲线拟合库?
var lineChart = getChartObj();
lineChart.setParams(barChart.getParams());
lineChart.setParam('cht', 'lc');
lineChart.setParam('chm', '');
var lineChartURL = paramsToURL(chartData.chartParams, chartData.baseURL);
drawChart('visitorDiv',lineChartURL);
您可能会发现,查看更多有关图表的详细信息,以便特别匹配您想要绘制的model,这将会很有趣。
另一个选择是考虑使用Qt Quick中的折线图来进行QML编程:
Graph.LineGraph {
width: parent.width
height: parent.height - legend.height - parent.spacing
model: learningProgressModel
dimensions: [
Graph.Dimension {
id: accuracyDimension
dataColumn: 5
color: "#ffb12d"
maximumValue: 1.0
label: i18n("Accuracy")
unit: "%"
unitFactor: 100
},
Graph.Dimension {
id: charactersPerMinuteDimension
dataColumn: 6
color: "#38aef4"
maximumValue: 400
label: i18n("Characters per Minute")
}
]
}
如果您想拥有广泛的绘图模型选择,Octave for Android也可能是一个有趣的选择。您可以使用drawBezierCurve命令,只需提供您数据中的点:
points = [0 0; 3 1; -2 1; 1 0];
drawBezierCurve(points);
hold on
plot(points([1 4],1),points([1 4],2),'go');
plot(points([2 3],1),points([2 3],2),'rs');
line(points([1 2],1),points([1 2],2),'color','k');
line(points([3 4],1),points([3 4],2),'color','k');
h = drawBezierCurve(points, 'discretization', 6, 'color','r');
hold off