首先,真棒計時器芽!
整件事情效果很好,事實上,我真的很想解決你的問題,只是爲了看看它的工作完美。
問題在於旋轉僅在一定程度上關閉。這看起來很小,但它實際上是旋轉屬性可行的一個大的誤差範圍。否則,在正常的日常應用程序中很容易辨別。如基本的90度和180度轉換。 181-179是一個很大的區別。
爲了說明這一點看看這個小提琴:
http://jsfiddle.net/agconti/x8PFL/1/
HTML:
<div id="div-1"><p>reference text</p></div>
<div id="div-2"><p>reference text</p></div>
<div id="div-3"><p>reference text</p></div>
<div id="div-4"><p>reference text</p></div>
CSS:
div {
width: 100px;
height:100px;
border: 1px solid black;
display:inline-block;
}
p{ margin: 25%; text-decoration:underline;}
#div-2 {
-webkit-transform: rotate(179deg);
-moz-transform: rotate(179deg);
transform: rotate(179deg);
}
#div-3 {
-webkit-transform: rotate(181deg);
-moz-transform: rotate(181deg);
transform: rotate(181deg);
}
#div-3 {
-webkit-transform: rotate(181deg);
-moz-transform: rotate(181deg);
transform: rotate(181deg);
}
#div-3 {
-webkit-transform: rotate(181deg);
-moz-transform: rotate(181deg);
transform: rotate(181deg);
}
#div-4 {
-webkit-transform: rotate(179.8deg);
-moz-transform: rotate(179.8deg);
transform: rotate(179.8deg);
}
你可以看到,即使在div-4
有一個失真程度(又稱其不完美straig H T )。這意味着旋轉屬性可以精確到1位小數點。
(如果將它帶到179.9deg
,則爲+/- 1小數點後的位置)。所以要回答你的第一個問題。是的,旋轉屬性精確到至少1度。因爲你的例子在0.5度左右(經過眼睛調整)後,似乎很清楚你的計算必須是關閉的,而不是旋轉屬性,因爲0.5度完全在屬性的容差範圍內[1]。 (STD +/- 1度 - > 5度是標準偏差的5倍(當然這是鬆散的))。
我不排除從您的計算累積舍入可能會導致錯誤,似乎不太可能給予測試。如果您檢查數學運算並且仍然遇到錯誤,爲了防止精確度損失,您可以將小數運算做爲整數並將結果除以變換值。
感謝您的回答和很好的解釋!我將首先嚐試整數中間值,然後除以變換值,看看會發生什麼。 –
@YingD沒問題;保持建設很酷的東西!請讓我知道如果這爲你解決,我很樂意看到成品。 – agconti