2

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;
    }
}

次に、もう一度試してみましたが、違いはないようです。なぜGoogleはquadToを使用するのですか?

Game Program で quadTo を使用してフィンガー ペイントを描画していると聞きましたが、なぜですか? 助けてください... thx

4

2 に答える 2