簡體   English   中英

是obj.style.WebkitTransform =“rotate(”+ degree +“deg)”; 非常精准?

[英]Is obj.style.WebkitTransform = “rotate(”+degree+“deg)”; very accurate?

當我以1度的小度值檢查它時,旋轉功能是不是完全准確?

因為我注意到了,我的計算結果是正確的,但是物體有可能傾斜一點點或更少。

我使用js-control-css旋轉創建一個1小時的倒計時時鍾,但它有一些機會略微錯位,而計算的值是正確的。 http://jsbin.com/exIFAPIS/1/ (您可以調整javascript開頭的開始時間,稱為“sendTime”)

任何人可以幫助我或給出一些提示或可能的原因嗎?

非常感謝!

首先,令人敬畏的計時器萌芽!

整個過程非常好,事實上我真的很想解決你的問題只是為了讓它完美運行。

問題是旋轉只有一定程度的關閉。 這似乎很小,但實際上旋轉屬性可行的誤差很大。 否則,在日常應用中很容易辨別。 如基本的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也存在一定程度的失真(也就是說它不是完全直的)。 這意味着rotate屬性相當精確,最多可達1位小數

(如果你把它帶到179.9deg小數點后+/- 1)。 那么回答你的第一個問題; 是的,rotate屬性精確到至少1度。

因為你的例子在大約0.5度(在通過眼睛調整之后)關閉了,所以你的計算似乎必須關閉而不是旋轉屬性,因為0.5度完全在屬性的容差范圍內。[1]

[1](STD +/- 1度 - > 5度是標准偏差的5倍,(當然,這是松散的))。

我不排除你的計算累積舍入可能導致錯誤,考慮到測試似乎不太可能。 如果檢查數學並且仍然遇到錯誤,為了防止精度損失,可以將十進制計算作為整數,並將結果除以轉換值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM