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