我不知道如何用較少的詞表達我需要的算法;這個問題很可能已經在這裏得到解答,但我不知道如何去搜索它。根據比例尺在座標線上重新標記標記的算法
我需要的是以下內容。
我正在寫一種2D圖形繪圖程序。顯然,僅繪製主座標線並不是很好,因爲圖形可能位於遠離原點的位置,並且如果僅繪製主線,則用戶將不會有其大小的任何參考。
我決定繪製參考線,即以恆定的間隔週期出現的水平線和垂直線,對應於例如。整數。但是,由於縮放的可能性,使用恆定間隔並不會很好,也就是說,如果用戶放大以查看單位正方形的內部,他將再次看到幾乎空的框,而沒有提及大小。
所以,我需要重新調整我用來繪製參考線的間隔。換句話說,我需要一個類似double -> double
這樣的函數,它接受當前的比例係數(我使用的係數指定了一個單位長度中有多少個像素)或者某個函數的值(例如最大單位長度的數量可以沿着某個座標軸放入屏幕中)並返回步長值(以邏輯單位表示像素,無關緊要),即參考線之間的間隔長度。
我相信這樣的函數的值的集合可以是無限的,也就是說,這個函數會將比例係數值的區間映射到該步的固定值。我可以粗略地描述算法,或者更準確地說,我需要的映射。它看起來類似於本(輸入值的畫面內單元的最大數目):
- ...
- [5..9] - > 0.25
- [9..15] - > 0.5
- [15..30] - > 1
- ...
這裏的數值是純經驗和僅用於說明使用。
但是,我不知道如何將這組映射外推到更大範圍的比例係數值,更不用說如何分析表達這種依賴關係。但我確信這是可能的,因爲我在許多圖形程序中看到了這樣的事情。
我發現this問題看起來非常接近我所需要的,但我無法設法將它的答案適應於我的任務,因爲它提到了標籤寬度並且我沒有任何標籤。
哇,這個作品很棒!我想我需要調整係數,但沒關係,我抓住了主要想法。非常感謝你! –