Computing the Computing the Perpendicular Force of Apple Pencil

2017 ワード

https://developer.apple.com/documentation/uikit/pencil_interactions/handling_input_from_apple_pencil/computing_the_perpendicular_force_of_apple_pencil
"Adjust the force values reported by Apple Pencil so that they are consistent with 3D Touch force values."
既知の圧力値を3 Dタッチ圧力値と一致させるように調整します.

Overview


3 Dタッチデバイスでは、ユーザの指から画面表面の垂直圧力を測定する.しかし、リンゴペンの長軸に基づいて圧力を測定する.これは通常、画面上の垂直力ではありません.アップルペンの圧力値の代わりに、指やアップルペンからのタッチコードを使用するのではなく、圧力の垂直力部分だけを計算したい場合があります.
Listing 1は、UITouchクラスにperpendicularForce属性を追加して、アップルペンが生成した垂直力圧力を通知する方法を示す.アップルペンのタッチ制御では、圧力値をペン先の高さの正弦波(三角関数)で除算します.他のタッチについては、既存の圧力値をお知らせください.
Listing 1 Getting the perpendicular force from Apple Pencil
extension UITouch {
    var perpendicularForce: CGFloat {
        if type == .pencil {
            return force / sin(altitudeAngle)
        } else {
            return force
        }
    }
}