Android 不使用canvas.path沿手指画线
在这个例子中,一个预定义的函数被绘制到一个交互式图表中。这是示例中使用的代码:Android 不使用canvas.path沿手指画线,android,canvas,Android,Canvas,在这个例子中,一个预定义的函数被绘制到一个交互式图表中。这是示例中使用的代码: /** * The simple math function Y = fun(X) to draw on the chart. * @param x The X value * @return The Y value */ protected static float fun(float x) { return (float) Math.pow(x, 3) - x / 4; } ....
/**
* The simple math function Y = fun(X) to draw on the chart.
* @param x The X value
* @return The Y value
*/
protected static float fun(float x) {
return (float) Math.pow(x, 3) - x / 4;
}
....
private void drawDataSeriesUnclipped(Canvas canvas) {
mSeriesLinesBuffer[0] = mContentRect.left;
mSeriesLinesBuffer[1] = getDrawY(fun(mCurrentViewport.left));
mSeriesLinesBuffer[2] = mSeriesLinesBuffer[0];
mSeriesLinesBuffer[3] = mSeriesLinesBuffer[1];
float x;
for (int i = 1; i <= DRAW_STEPS; i++) {
mSeriesLinesBuffer[i * 4 + 0] = mSeriesLinesBuffer[(i - 1) * 4 + 2];
mSeriesLinesBuffer[i * 4 + 1] = mSeriesLinesBuffer[(i - 1) * 4 + 3];
x = (mCurrentViewport.left + (mCurrentViewport.width() / DRAW_STEPS * i));
mSeriesLinesBuffer[i * 4 + 2] = getDrawX(x);
mSeriesLinesBuffer[i * 4 + 3] = getDrawY(fun(x));
}
canvas.drawLines(mSeriesLinesBuffer, mDataPaint);
}
然后我更改了fun
,如果传递了点的x值,则返回点的正确y值:
protected static float fun(float x) {
float currX = 0;
float currY = 0;
for (int i = 0; i < pointsList.size(); i++) {
Point curr = pointsList.get(i);
currX = curr.x;
currY = curr.y;
}
if (currX == x) {
return currY;
}
受保护的静态浮动乐趣(浮动x){
浮动电流x=0;
浮动咖喱=0;
对于(int i=0;i
我知道这是一个很长很复杂的问题,但我真的不知道还能做什么,我已经尝试了所有的方法,但都无法找到解决方案,所以如果有人能抽出时间来看看我的问题,我将不胜感激
总结一下我的问题:
-我想根据用户手指的触摸画一条线
-我需要在没有路径的情况下完成它,但使用上述方法,请绘制一种草图:您希望如何获得它,您到目前为止拥有什么等等。口头上很难理解您想要什么。我不认为草图真的会有帮助,因为目前没有绘制任何东西。
protected static float fun(float x) {
float currX = 0;
float currY = 0;
for (int i = 0; i < pointsList.size(); i++) {
Point curr = pointsList.get(i);
currX = curr.x;
currY = curr.y;
}
if (currX == x) {
return currY;
}