Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 什么';在手指绘制的情况下,Path.quadTo和Path.lineTo之间的区别是什么?_Android_Graphics_Drawing - Fatal编程技术网

Android 什么';在手指绘制的情况下,Path.quadTo和Path.lineTo之间的区别是什么?

Android 什么';在手指绘制的情况下,Path.quadTo和Path.lineTo之间的区别是什么?,android,graphics,drawing,Android,Graphics,Drawing,Android的APIDemos中有一个FingerPaint演示。 下面是手指在屏幕上移动时的代码 private void touch_move(float x, float y) { float dx = Math.abs(x - mX); float dy = Math.abs(y - mY); if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) { mPath.quadTo(mX,

Android的APIDemos中有一个FingerPaint演示。 下面是手指在屏幕上移动时的代码

private void touch_move(float x, float y) {
    float dx = Math.abs(x - mX);
    float dy = Math.abs(y - mY);
    if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
        mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
        mX = x;
        mY = y;
    }
}
我注意到这个演示使用了mPath.quadTo,我认为应该是mPath.lineTo,我试过了。下面是我的代码:

private void touch_move(float x, float y) {
    float dx = Math.abs(x - mX);
    float dy = Math.abs(y - mY);
    if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
        mPath.lineTo(x, y);
        mX = x;
        mY = y;
    }
}
然后我又试了一次,似乎没什么区别,为什么谷歌使用quadTo

我听说在游戏程序中,他们用quadTo来画手指画,但为什么呢?
Plz帮助…thx使用二次线(基本上是某种椭圆)四次曲线。LineTo是一条直线。QuadTo将在其转弯处平滑锯齿。

根据:

四通(浮动x1、浮动y1、浮动x2、浮动y2) 从最后一个点添加一个二次贝塞尔曲线,接近控制点(x1,y1),并在(x2,y2)处结束。。 lineTo(浮动x,浮动y)添加从最后一个点到指定点(x,y)的直线


看起来像是quadTo()根据某个二次函数或抛物线绘制了一条曲线。lineTo()只是画了一条直线。

是的,我试着在PhotoShop中比较它们。quadTo更平滑。谢谢你的回答,Gabe Sechan详细了解原因。