2017-07-09 45 views
-2

就像在問題標題中一樣,我正在尋找一種有效的方法來表示一組浮點值(包括)x和y之間的一組浮點值,其中x等於0且y等於1.然後填入兩者之間的值。如何將浮點數範圍(x到y)表示爲從0到1的範圍中的一組雙精度值,其中x是0且y是1?

假設x是5,y是20

現在,5 = 0,20 = 1 是否有一個數學函數來確定的10 C#中的值?

我覺得我不能想辦法以編程方式做到這一點,我可以交換x和y的值。給定的x和y的值將是單個數字。範圍從0-1的值應具有2個十進制值的精度。任何幫助表示讚賞,謝謝!

+0

你覺得比線性映射更復雜嗎? – Yunnosch

+2

你的意思是像((價值 - 下)/(上 - 下)''? – harold

+0

你是線性插值(就像@harold建議的那樣),還是使用其他函數? – meowgoesthedog

回答

1

你可以創建自己的函數,它接受X和Y與第三個參數是要映射,然後返回你的價值是這樣的:

Static double Map(float x, float y, float inputValue){ Return Convert.ToDouble((inputValue-x)/(y-x));} 

從邏輯的角度來看,你正在努力尋找什麼小數分隔你的InputValue在x和y之間的方式。想象一下與某人在一起的漫長道路。要找出他的方式是多少,你必須知道他走了多遠,這是他的位置減去起始位置,然後除以道路的總距離,在這種情況下y(結束) -x(起始位置)

+0

謝謝你,你幫我理解評論中的答案是如何工作的。 –

相關問題