- 比方說,我有一個寬100的矩形和高度50
- 在設定時間的過程中,會出現在矩形中移動一個點,可以說每毫秒。
- 在每毫秒之間,點位置可能不會改變,稍微改變或改變很大。
- 現在讓我說我想放大原始矩形的2倍,所以矩形的50乘25是可見的(原始大小的1/4)。
- 我想在放大時始終保持該點可見,所以50乘25的矩形將四處移動以保持點可見。
- 我的問題涉及保持光標始終在小矩形內可見。
- 一個幼稚的實現將使小矩形的中心成爲每毫秒點的位置,以便它始終可見。但是,這不會在視覺上最佳,因爲例如,如果點向右移動一個像素,則應該不需要移動,因爲光標仍然可見。
- 我想知道是否有任何算法/資源可以在每毫秒中找出小矩形的理想中心,以最大限度地減少不必要的移動並使其儘可能平滑。此外,每毫秒的點的所有位置都將事先提供。任何建議/反饋表示讚賞。
回答
每次放大時,都會將矩形分成四部分。檢查你的光標在哪個矩形中,只看那個矩形。如果光標改變矩形,移動到那個。假設你知道光標的位置,並且在mod和div的幫助下,你可以找到你需要看到的小矩形。
該方法的問題在於運動根本不會平滑。另外,例如,如果有兩個相鄰點,但每個點位於不同的象限上,則它們之間的切換將會發生劇烈變化。 –
你認爲平滑度是什麼?您可以獲得儘可能大的移動,並將光標移動到光標的一小部分。 – kameranis
像平滑一樣,想象一下,如果小矩形在大矩形的頂部移動,只需少量移動即可,但足夠使其看起來不像跳躍。我希望它看起來更像是一個平移。你能解釋第二部分嗎? –
我會去它像這樣:
- 檢查點仍然是可見的,這意味着當前視圖
- 如果是,你就大功告成了裏面。
- 如果不是,則要儘可能少地移動視口,這意味着要計算視口最靠近的一側與點之間的距離。
要做到這一點,您需要視口的四個頂點的座標和點的座標。由於您有兩個座標,因此可以將視口的邊視爲直線方程,並應用this來確定哪一個最接近。
當你知道哪一邊要「移動」後,例如,你可以將點看作是「移動」一邊的中間點,並圍繞該點重建視口(也許會給它一些邊緣以確保它可見)。
- 1. 使用GPUImage捕獲時減少不必要的運動模糊
- 2. 算法減少
- 3. Hadoop地圖減少:算法
- 4. 3NF合成減少算法
- 5. 隊列減少算法?
- 6. 阿帕奇豬不必要的重新運行地圖減少作業
- 7. 減少jQuery代碼的行數,不必要的重複
- 8. 簡化和減少不必要的輸出顯示
- 9. 在類成員變量中減少不必要的相同值
- 10. 我們如何減少不必要的對象加載?
- 11. 通過刪除不必要的功能減少JQuery大小
- 12. 減少多實例服務不必要的工作
- 13. 爲什麼要添加一行計算減少運行時間?
- 14. Python - 減少函數和|運算符
- 15. 減少算法時間的複雜性
- 16. 地圖減少TB數據的算法?
- 17. 減少三角剖分的算法
- 18. STL減少運算符和「無效運算符<」錯誤
- 19. XSLT減法運算符
- 20. 減法運算符python
- 21. strchr(),APT_String和減法運算
- 22. C指針減法運算
- 23. 減少整數級分算法
- 24. SHA256彩虹桌減少算法
- 25. Java分數計算器減少方法
- 26. 減少小數變量(算法)
- 27. 如何設置Hive減少運算符,因爲減少運算符始終爲0
- 28. 不需要的音頻強度減少
- 29. 解析表達式時沒有混合運算符時減少/減少衝突
- 30. 減少振動
一個簡單的,首先要嘗試的可能是移動平均線。平均最後N個觀察到的位置(即計算移動平均線)並將矩形居中。 –