iOS刻度尺換算之1mm等於多少像素理解


剛好看到一個刻度尺文章,實現手機屏幕上畫刻度尺。

 

然后就有一個疑問:這個現實中的1mm(1毫米)長度與手機像素之間的換算比怎么來的呢?

 

看了下demo代碼,發現這樣寫的:

    CGFloat sc_w = [[UIScreen mainScreen] bounds].size.width;
    CGFloat sc_h = [[UIScreen mainScreen] bounds].size.height;
    CGFloat sc_s;
    CGFloat ff = [[UIScreen mainScreen] nativeBounds].size.height;
    
    if (ff == 1136) {
        sc_s = 4.0;
    }else if(ff == 1334.0){
        sc_s = 4.7;
    }else if (ff== 1920){
        sc_s = 5.5;
    }else if (ff== 2436){
        sc_s = 5.8;
    }else{
        sc_s = 3.5;
    }
    
    //1mm米的像素點
    pmm = sqrt(sc_w * sc_w + sc_h * sc_h)/(sc_s * 25.4);//mm

以上這個pmm就是得到的 1mm = pmm像素

 

何解呢?

原來是這樣:

1、根據手機像素值:[UIScreen mainScreen] nativeBounds,得到手機大小英寸(4、4.7、5.5等等)

2、根據手機寬高,根據三角形勾股定律,計算出斜邊長度 Xiebian= sqrt(sc_w * sc_w + sc_h * sc_h)

3、重點是這個25.4,之前一直不理解這個數字,終於發現是因為:1 英寸=2.54 厘米,也就是25.4mm,就能得到一個斜邊對應的毫米值:(sc_s * 25.4)

4、然后就是用得到的斜邊長度像素/毫米值,得到1mm對應的像素值了

5、最后就根據這個值 慢慢畫刻度啦~

 

soga~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM