在過去的幾個月中,我一直在研究爲各種軟件音樂合成器開發基於Kinect的多點觸控界面。NUI/touch界面的一般注意事項
我想出的總體策略是以編程方式或(如果可能的話)算法地創建對象來表示軟合成器的各種控制。這些應該有;
- X位置
- Y位置
- 身高
- 寬度
- MIDI輸出通道
- MIDI數據定標器(轉換的xy COORDS到MIDI值)
2策略我已經考慮過用於創建農業科學的是XML描述,並以某種方式將東西拉開e屏幕(即給出一個正在運行的程序,找到所有控件的xycoords)。我不知道如何去解決第二個問題,這就是爲什麼我用這種特定的技術語言表達的原因;)。我可以做一些中間解決方案,比如在控件的角落點擊鼠標來生成一個xml文件。我可以做的另一件事,我經常在Flash應用程序中看到的是,將屏幕大小放入一個變量中,並使用數學來構建屏幕大小的所有界面對象。請注意,並非嚴格必須使對象與屏幕控件的大小相同,或者表示所有屏幕對象(某些只是指示器,而不是交互式控件)
其他注意事項;
給出(現在)兩組X/Y座標作爲輸入(左手和右手),使用它們的最佳選擇是什麼?我的第一本能是創建某種焦點測試,其中如果x/y座標落在界面對象的邊界內,則該對象變爲活動的,然後如果它們在一段時間內落在其他一些較小範圍之外則變爲非活動狀態。我找到的廉價解決方案是使用左手作爲指針/選擇器,右手作爲控制器,但似乎我可以做更多。我有幾個手勢解決方案(隱藏的馬爾可夫鏈),我可以擰緊。並不是說他們很容易上班,但是我可以看到自己在給予足夠激勵的情況下進行工作。
因此,要總結,問題是
- 表示接口(必要的,因爲默認接口總是期望鼠標輸入)
- 選擇使用兩組x/y的一個控制
- 操縱它座標(旋轉/連續控制器),或者在開關的情況下,優選地使用手勢來切換它而不給予/取得焦點。
任何意見,尤其是從工作/正在多點觸控io/NUI工作的人,都非常感謝。鏈接到現有的項目和/或一些好的閱讀材料(書籍,網站等)將是一個很大的幫助。
關於這個問題的元討論正在發生/已經發生:http://meta.stackexchange.com/q/106720/146495 –