我正在研究一個項目,在該項目中,我必須根據位置傳感器的值旋轉輪胎。傳感器提供的數值從261(-90度)到395(+90度)。我正在使用TransformGroup
,所以差不多在傳感器的327值處輪胎應該筆直並豎立。精確角度計算
當值爲395時,輪胎將完全沿X軸放置,類似於值爲261的情況。我可以移動輪胎,但我無法計算精確的角度。
我的計算方法就像我計算特定角度(比如說3)的默認值或零值(327)的值的數量。所以我得到這個角度的數值。然後我把這個數字從角度(3度)分開。所以我得到一個值的角度。
float tempangle = value from sensor-zero value which is 327;
tempangle = Math.Abs(tempangle);
tempangle /= float.Parse(angle for reference say 3 degree);
tempangle = 1/tempangle;
在這裏,我把一些已知角度的身體下傳感器(其中有一個度)。當我想爲某個值找到某個角度時,我只需將該角度與該值和默認值(327)之間的值的數量相乘即可。所以我得到了旋轉身體的角度。
假設我有計算後得到的角度
angle for one sensor value =1.14286286
假設由計算器計算出我喜歡的角度
1.14286286 *2=2.2857
1.14286286 *3=3.42858
1.14286286 *4=4.57145
1.14286286 *5=5.714314
1.14286286 *6=6.85717
正如你可以看到,角跳過一些十進制值。有什麼辦法可以配合它嗎? 感謝
使用'double'而不是'float'。 – Clemens
我的意思是一個值是2.2857,第二個值是3.42858,如果我可以在2.2之後得到2.5的值,那麼在2.2之後它不應該跳到3。我的方法無法在兩個值之間進行計算。 –