色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機編程>

iOS上創(chuàng)建矢量圖形的要求

大小:0.3 MB 人氣: 2017-09-26 需要積分:1

  矢量圖形的一個巨大優(yōu)勢就是它可以被渲染在任意分辨率的屏幕上,同時保持絕對的平滑的且不失真。這就是為什么Post和TrueType字體在任意放大倍數(shù)下都如此清晰的原因。因為智能手機電腦顯示屏幕一般是光柵排列,所以在合適的分辨率下,矢量圖形必須作為光柵圖形才能在屏幕渲染。而這些底層圖形庫已經(jīng)封裝了上述實現(xiàn),程序員并不需要了解。

  1.什么時候使用矢量圖形

  讓我們來考慮一下使用矢量圖形的一些場景。

  App和按鈕圖標,用戶界面元素

  幾年前(iOS7),蘋果公司在自己的app和iOS平臺自身的用戶界面中拋棄了擬物設計風格(skeuomorphism),而采用更扁平的精細設計。可以參考下Camera和Photo app引用的圖標。

  十有八九,這些元素是由矢量圖形工具設計的。為了符合這些設計規(guī)則,開發(fā)者不得不跟隨扁平化風格,這導致大部分流行的(非游戲類)app完全改變了風格。

  游戲

  簡單圖像(Asteroids)或幾何主題(Super Hexagon)的游戲,能使用游戲引擎渲染矢量圖形。游戲中通過代碼編寫的部分也采用了矢量圖形。

  圖片

  你可以隨機的插入圖片來獲得基于相同基本圖形的多個版本的圖像。

  2.貝塞爾曲線

  什么是貝塞爾曲線?在不深入探討數(shù)學理論情況下,我們來討論下開發(fā)者實際用到的貝塞爾曲線特征。

  自由度

  貝塞爾曲線特點是它有多少的自由度。自由度越大,曲線變化越大(數(shù)學計算就越復雜)

  一次方貝塞爾曲線就是兩點的直線線段。二次方貝塞爾曲線也稱作閉合曲線。三次方貝塞爾曲線(立方)是我們重點關注的,因為它在伸縮性和復雜性上提供了這種方案。

  立方貝塞爾曲線不僅可以表示簡單平滑曲線,也可以表示封閉曲線和尖端曲線(兩曲線相匯與一點)。許多立方貝塞爾曲線段可以通過點對點的銜接在一起形成更復雜的形狀。

  三維貝塞爾曲線

  立方貝塞爾曲線的形狀是由它的兩個端點和兩個額外的描點決定它的形狀的。一般來說,n次方的貝塞爾曲線有(n-1)個描點,不用計算有幾個端點。

  立方貝塞爾曲線有一個引人注目的特征是這些點有可視化的特性。連接端點和它最近的喵點的這條線是曲線的切線。這條切線是設計貝塞爾曲線形狀的基礎,我們會稍后深入研究這個特性。

  幾何變化

  基于曲線的數(shù)學特性,你可以簡單的在曲線上進行沒有任何精度損失的幾何變化,比如縮放,旋轉(zhuǎn)和平移。

  下面的圖片展示了不同形狀的三次方貝塞爾曲線的樣本。注意綠色線就是曲線的切線。

  iOS上創(chuàng)建矢量圖形的要求

  3.Core Graphics和UIBezierPath類

  在iOS和OS X平臺,矢量圖形底層是基于C語言的核心圖形庫實現(xiàn)的。它基于UIKit/Cocoa上層,封裝面向?qū)ο蟮念?。它的實現(xiàn)者就是UIBezierPath類(OS X是NSBezierPath類),一個貝塞爾曲線理論的實現(xiàn)。

  UIBezierPath類支持一次方貝塞爾曲線(就是直線端),二次方貝塞爾曲線(封閉曲線)和三次方貝塞爾曲線(三維曲線)

  從編程角度考慮,UIBezierPath對象可以通過添加子路徑的方式一個一個添加。為了實現(xiàn)這個方式,UIBezierPath對象持續(xù)關注currentPoint屬性。每次你添加一個新的子路徑段,最末端點就成為當前點,接下來的繪圖操作就從這個當前點開始。你可以手動移動這個點到你想要的位置。

  UIBezierPath類為一些常用的形狀提供了便捷的方法,比如弧,圓和圓角矩形等。其內(nèi)部的實現(xiàn)是多個子路徑互相連接而成。

  貝塞爾曲線路徑形狀可以是開放或封閉的,甚至可以自包含或者同時有多個封閉曲線。

  4.入門

  這本指南需要讀者有一定的矢量圖形基礎。不過如果你是一位有經(jīng)驗的開發(fā)者但從來沒使用過Core Graphics庫或UIBezierPath類,你可以學習下去。但如果你是新手并且不熟悉,我建議你先閱讀UIBezierPath的官方API說明(同樣參考Core Graphics官方文檔API)。在這篇教程中我們只會練習API中幾個有限的功能。

  話不多說,我們這就開始編寫代碼。在該篇教程的剩余部分,我會展現(xiàn)兩個適合使用矢量圖形的場景。

  打開Xcode工具,創(chuàng)建一個新的playground文件,設置平臺為iOS。順便說一句,Xcode的playground是使用矢量圖形工作變得有趣的另一個原因。你可以敲入代碼并立即獲得代碼的可視效果。請記住你必須使用最新版的Xcode,目前的版本是7.2。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?
      主站蜘蛛池模板: 无套内射CHINESEHD| beeg日本老师| 麒麟色欧美影院在线播放| 国产精品一区二区AV交换| 24小时日本在线观看片免费| 天堂tv免费tv在线tv香蕉| 免费一区二区三区久久| 国产高清亚洲日韩字幕一区| 99re久久热最新地址一| 亚洲人成色777777老人头| 肉肉高潮液体高干文H| 乱爱性全过程免费视频| 国产亚洲美女精品久久久2020| 超碰caoporon最新视频| 最新无码国产在线视频9299| 亚洲精品第一综合99久久| 色爱AV综合区| 暖暖的高清视频在线观看免费中文 | 青青草原成人| 老年日本老年daddy| 黄片在线观看| 国产精品日本欧美一区二区| 本庄优花aⅴ全部在线影片| 88.7在线收听| 找老女人泻火对白自拍| 亚洲人成在线播放无码| 羞羞漫画免费漫画页面在线看漫画秋蝉 | 丰满的女友1在线观看| 99re久久免费热在线视频手机| 亚洲婷婷天堂综合国产剧情| 亚洲 综合 欧美在线视频| 色偷偷7777www| 日韩欧美一区二区三区免费看| 欧美Av无码高清在线| 男女一边摸一边做羞羞的事情免费| 久久人妻熟女中文字幕AV蜜芽| 久草青青在线| 久久精品免视看国产| 久久99精品AV99果冻传媒| 精品一区二区三区色花堂| 久久国产免费一区二区三区|