ページ「目潰し液晶」と「ピンチ」の間の差分

提供: MonoBook
(ページ間の差分)
ナビゲーションに移動 検索に移動
imported>Administrator
(ページの作成:「'''目潰し液晶'''とは、主に安物PCに採用されているギラツキのある液晶のことである。利用者の視力を著しく低下させると...」)
 
imported>Administrator
(ページの作成:「'''ピンチ'''(英語pinch)とは、日本語に訳すと「挟む」という意味であり、コンピューターの世界では主にマルチ...」)
 
1行目: 1行目:
'''目潰し液晶'''とは、主に安物PCに採用されているギラツキのある[[液晶]]のことである。利用者の視力を著しく低下させるという人体に取り返しのつかないダメージを与える。
+
'''ピンチ'''[[英語]]:[[pinch]])とは、日本語に訳すと「挟む」という意味であり、[[コンピューター]]の世界では主に[[マルチタッチ]]において2本の指を開いたり閉じたりする動作を指す。
  
ギラツキの原因は、[[バックライト]]の制御や特性、[[液晶パネル]]の開口率、液晶パネルの表面処理など様々な要因がある。グレアとノングレアの2つの表面処理だけを取り上げる者も多いが、実際にはグレアであっても高品質な液晶もあれば、ノングレアであっても低品質な液晶もある。LEDバックライトが勢いよくパネルを突き抜け目に刺さる製品もある。あくまでも掛け算なのである。
+
ピンチに対応する処理はほとんどのアプリで「拡大縮小」となっている。指でクパー感は直感的でわかりやすい。
  
[[社畜PC]]などのように[[低コスト]]だけを追求した製品は本当にヤバイことになっている。
+
非常に稀な例だが、お絵かきソフトで「直線を引く」になっていたものもあったが、これはあまり使い勝手の良いものではなかった。
  
店頭でじっくり体感してから買うことをオススメする。迷うようだったら[[Mac]]でも買っとけ。
+
== 実装例 ==
 +
[[MonoGame]]での実装例を示す。<syntaxhighlight lang="csharp" line="1" start="0">
 +
bool _pinching = false;
 +
float _pinchInitialDistance;
 +
 
 +
private void HandleTouchInput()
 +
{
 +
    if (TouchPanel.IsGestureAvailable)
 +
    {
 +
        GestureSample gesture = TouchPanel.GetGesture();
 +
 
 +
        if (gesture.GestureType == GestureType.Pinch)
 +
        {
 +
            // current positions
 +
            Vector2 a = gesture.Position;
 +
            Vector2 b = gesture.Position2;
 +
            float dist = Vector2.Distance(a, b);
 +
 
 +
            // prior positions
 +
            Vector2 aOld = gesture.Position - gesture.Delta;
 +
            Vector2 bOld = gesture.Position2 - gesture.Delta2;
 +
            float distOld = Vector2.Distance(aOld, bOld);
 +
 
 +
            if (!_pinching)
 +
            {
 +
                // start of pinch, record original distance
 +
                _pinching = true;
 +
                _pinchInitialDistance = distOld;
 +
            }
 +
 
 +
            // work out zoom amount based on pinch distance...
 +
            float scale = (distOld - dist) * 0.05f;
 +
            ZoomBy(scale);
 +
        }
 +
        else if (gesture.GestureType == GestureType.PinchComplete)
 +
        {
 +
            // end of pinch
 +
            _pinching = false;
 +
        }
 +
    }
 +
}
 +
</syntaxhighlight>

2018年8月3日 (金) 02:24時点における最新版

ピンチ英語pinch)とは、日本語に訳すと「挟む」という意味であり、コンピューターの世界では主にマルチタッチにおいて2本の指を開いたり閉じたりする動作を指す。

ピンチに対応する処理はほとんどのアプリで「拡大縮小」となっている。指でクパー感は直感的でわかりやすい。

非常に稀な例だが、お絵かきソフトで「直線を引く」になっていたものもあったが、これはあまり使い勝手の良いものではなかった。

実装例[編集 | ソースを編集]

MonoGameでの実装例を示す。

 0 bool _pinching = false;
 1 float _pinchInitialDistance;
 2 
 3 private void HandleTouchInput() 
 4 {
 5     if (TouchPanel.IsGestureAvailable)
 6     {
 7         GestureSample gesture = TouchPanel.GetGesture();
 8 
 9         if (gesture.GestureType == GestureType.Pinch)
10         {
11             // current positions
12             Vector2 a = gesture.Position;
13             Vector2 b = gesture.Position2;
14             float dist = Vector2.Distance(a, b);
15 
16             // prior positions
17             Vector2 aOld = gesture.Position - gesture.Delta;
18             Vector2 bOld = gesture.Position2 - gesture.Delta2;
19             float distOld = Vector2.Distance(aOld, bOld);
20 
21             if (!_pinching)
22             {
23                 // start of pinch, record original distance
24                 _pinching = true;
25                 _pinchInitialDistance = distOld;
26             }
27 
28             // work out zoom amount based on pinch distance...
29             float scale = (distOld - dist) * 0.05f;
30             ZoomBy(scale);
31         }
32         else if (gesture.GestureType == GestureType.PinchComplete)
33         {
34             // end of pinch
35             _pinching = false;
36         }
37     }
38 }