日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

unity获取电磁笔压感_【WPF】获取电磁笔的压感

發布時間:2024/7/5 asp.net 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity获取电磁笔压感_【WPF】获取电磁笔的压感 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WPF 不僅支持觸控,也支持筆的輸入,比如現在比較高大上的電磁筆。便宜的板子一般不配備電磁筆,而是配電容筆,雖然也號稱XXX級壓感,但是效果自然不可與電磁筆相比。

UIElement 類規范了UI元素的基本輪廓,在該類公開的事件中,大凡以 Stylus 開頭的事件,都與書寫筆有關。這里大伙伴要注意一點,當筆尖按下屏幕時會發生?StylusDown 事件,但是,此時我們還不能夠得到筆的壓力值。

緊隨其后就會發生?StylusMove 事件。筆按下后就會馬上引上這個事件,而且,只要筆在屏幕上移動就會不斷引發這個事件,前提是你在移動筆尖時不能離開屏幕。如果筆尖提起,會發生?StylusUp 事件;筆尖提起后,處于懸空狀態,只要筆還在感應范圍內,移動筆尖會發生?StylusInAirMove 事件。注意區別,筆尖按下時移動發生的是?StylusMove 事件,而懸空后移動會發生?StylusInAirMove 事件。

筆輸入的數據由?StylusPoint 結構來封裝,其中,X和Y相信你也猜到,就是筆尖的坐標,這點與鼠標事件相似。不過,筆輸入的數據還帶有一個?PressureFactor 字段,對,重點就是它了,它表示筆的壓力。

不管你的筆是 256 級壓感,還是 1024 級 2048 級壓感,PressureFactor 字段值始終在 0 和 1 之間,它是個浮點數值,數字越小,表示壓力越小;反之表示壓力越大。

好了,經過老周上面一堆廢話,估計你也已經知道這活怎么干了。下面,還是老規矩,學習不干活是不行的,所以,我們得動手,才能弄懂。

首先,在窗口上放一個矩形。

把這個矩形的填充顏色設為紅色,待會兒咱們感應電磁筆的壓力,動態調整矩形的透明度。壓力越大,矩形越紅,比那些網紅還要紅。

接著,處理相關事件。

然后編寫處理代碼。

private void OnStyluesMove(objectsender, StylusEventArgs e)

{var pts = e.GetStylusPoints(null);foreach (var p inpts)

{

rect.Opacity=p.PressureFactor;

}

}

因為筆尖在屏幕上移動時,可能一次會產生N個坐標,所以,GetStylusPoints方法返回一個點的集合,這個方法在調用時,需要傳遞一個元素引用,用來作為參照對象,即,所獲取的坐標是相對于這個對象。此處用 null 表示獲取到的點是相對于根,如窗口。

由于筆尖的一次移動可能產生多個點,這里我順便 foreach 了一下,其實,眼睛看到的最后一輪設置的值。因而你完全可以去掉這個 foreach ,在點集合中,只取出一個點出來就行了(最后一個點)。我姑且保留 foreach ,大伙兒可以下載源碼后,自行玩耍。

巧合的是,Opacity 屬性的值范圍是 0 到 1,PressureFactor 的值范圍也是 0 到 1,所以,直接賦值就完事了,不用轉化計算。

最后運行程序,然后拿電磁筆狠狠地扎幾下窗口,你就能看到壓感的變化了。效果請參考下面的高清無碼無水印動圖。

好,今天就聊到這里,see you。

總結

以上是生活随笔為你收集整理的unity获取电磁笔压感_【WPF】获取电磁笔的压感的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。