iOS 混合變換旋轉 CGAffineTransform

來源:互聯網
上載者:User

標籤:基礎   tle   column   對象旋轉   layer   view   縮放   距離   ios   

在ios 中, Core Graphics 提供了一系列的函數可以在一個變換的基礎上做深層次的變換,如果做一個既要縮放又要旋轉的變換,以下的方法比較實用。

CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)  --放大縮小CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)  --旋轉的角度CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty)  --位移量:在原始的位置上位移tx像素和ty像素

 

具體使用如下:

1. 建立一個CGAffineTransform 的對象

2.設定要處理的過程

3.對於需要處理的對象進行賦值

代碼如下:

   //建立CGAffineTransform的對象   CGAffineTransform transform = CGAffineTransformIdentity;    //設定 處理對象縮小50%    transform = CGAffineTransformScale(transform, 0.5, 0.5);    //設定 處理對象旋轉30度角    transform = CGAffineTransformRotate(transform, M_PI / 180.0 * 30);    //接著 位移200像素    transform = CGAffineTransformTranslate(transform, 200, 0);    //對需要處理的對象賦值:affineTransform    self.imageView.layer.affineTransform = transform;

 如下:

注意的地方:

需要注意的地方:圖片向右邊發生了平移,但並沒有指定距離那麼遠 (200像素),另外它還有點向下發生了平移。原因在於當你按順序做了變換,上 一個變換的結果將會影響之後的變換,所以200像素的向右平移同樣也被旋轉了30 度,縮小了50%,所以它實際上是斜向移動了100像素。

這意味著變換的順序會影響最終的結果,也就是說旋轉之後的平移和平移之後的旋轉結果可能不同。

iOS 混合變換旋轉 CGAffineTransform

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.