<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        HTML5高級編程之圖形扭曲及其應用二(運用篇)

        來源:懂視網 責編:小采 時間:2020-11-27 15:12:19
        文檔

        HTML5高級編程之圖形扭曲及其應用二(運用篇)

        HTML5高級編程之圖形扭曲及其應用二(運用篇):上次介紹了在html5中實現圖片扭曲效果的原理,并擴展成了drawtriangles函數,下面來詳細講解一下drawtriangles函數的使用方法。并且使用drawtriangles函數實現下面這種處理效果因為這個方法是從AS3移植而來,所以它的使用方法和AS3基本一致,這里是AS3
        推薦度:
        導讀HTML5高級編程之圖形扭曲及其應用二(運用篇):上次介紹了在html5中實現圖片扭曲效果的原理,并擴展成了drawtriangles函數,下面來詳細講解一下drawtriangles函數的使用方法。并且使用drawtriangles函數實現下面這種處理效果因為這個方法是從AS3移植而來,所以它的使用方法和AS3基本一致,這里是AS3
        上次介紹了在html5中實現圖片扭曲效果的原理,并擴展成了drawtriangles函數,

        下面來詳細講解一下drawtriangles函數的使用方法。并且使用drawtriangles函數實現下面這種處理效果


        因為這個方法是從AS3移植而來,所以它的使用方法和AS3基本一致,這里是AS3的drawtriangles函數API,大家可以參照一下

        http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#drawTriangles()

        上次也說明過,移植后的drawtriangles函數,第4個之后的參數的含義不同,在這里它第4個參數表示分割線的線粗,第5個參數則表示分割線的顏色,如果不設定,則不顯示分割線

        drawTriangles函數的定義

        drawTriangles(vertices, indices, uvtData,thickness,color)
        vertices:由數字構成的矢量,其中的每一對數字將被視為一個坐標位置(一個 x, y 對)。vertices 參數是必需的。
        indices:一個由整數或索引構成的矢量,其中每三個索引定義一個三角形。
        如果 indexes 參數為 null,則每三個頂點(vertices 矢量中的 6 對 x,y)定義一個三角形。否則,每個索引將引用一個頂點,即 vertices 矢量中的一對數字。
        例如,indexes[1] 引用 (vertices[2], vertices[3])。
        uvtData:由用于應用紋理映射的標準坐標構成的矢量。
        每個坐標引用用于填充的位圖上的一個點。每個頂點必須具有一個 UV 或一個 UVT 坐標。對于 UV 坐標,(0,0) 是位圖的左上角,(1,1) 是位圖的右下角。
        thickness:分割三角形的邊框的線粗
        color:分割三角形的邊框的顏色

        直接看上面的文字,恐怕不太容易理解,下面來舉幾個例子,最后兩個參數比較簡單,先來說說這兩個參數,下面是最后兩個參數線寬設置為2,顏色為白色的效果


        可以看到,上圖中顯示了三角形的邊框。

        好了,接下來說說其他三個參數的用法,

        1,第一個參數vertices,其實就是定義每個頂點的坐標,這幾個頂點的順序依次為下圖


        vertices參數中儲存的就是上面的9個頂點的坐標,代碼如下

        vertices = new Array();
        vertices.push(0, 0);
        vertices.push(0, 120);
        vertices.push(0, 240);
        vertices.push(120, 0);
        vertices.push(120, 120);
        vertices.push(120, 240);
        vertices.push(240, 0);
        vertices.push(240, 120);
        vertices.push(240, 240);

        2,第二個參數indices是定義三角形,數組vertices中每三個頂點可以組成一個三角形,indices就是來定義這些三角形,這些三角形的頂點順序是有規定的,其實從前面的圖中可以看到,每兩個三角形是一個矩形,定義這些三角形的時候,要以這些矩形的四個頂點為基準,三角形的頂點順序分別是(左上,右上,左下)和(右上,左下,右下),如下圖所示


        對應圖中的三角形,代碼如下

        indices = new Array();
        indices.push(0, 3, 1);
        indices.push(3, 1, 4);
        indices.push(1, 4, 2);
        indices.push(4, 2, 5);
        indices.push(3, 6, 4);
        indices.push(6, 4, 7);
        indices.push(4, 7, 5);
        indices.push(7, 5, 8);


        2,第三個參數uvtData是定義上面的每個頂點相對于整張圖片的比例,比如上面的圖中的9個頂點的坐標,他們相對于原圖片中的位置分別為下圖所示


        換算成代碼如下

        uvtData = new Array();
        uvtData.push(0, 0);
        uvtData.push(0, 0.5);
        uvtData.push(0, 1);
        uvtData.push(0.5, 0);
        uvtData.push(0.5, 0.5);
        uvtData.push(0.5, 1);
        uvtData.push(1, 0);
        uvtData.push(1, 0.5);
        uvtData.push(1, 1);

        有了上面這些參數的定義,然后通過LSprite對象的graphics屬性的beginBitmapFill和drawTriangles兩個函數,就可以繪制多樣化的圖形了

        beginBitmapFill是用位圖圖像填充繪圖區,參數是LBitmapData對象

        如果,在vertices參數中定義的坐標位置就是原圖片中所對應的位置,那么圖片是沒有什么變化的,但是,如果改變這些坐標的位置,比如下面的代碼

        vertices = new Array();
        vertices.push(0, 0);
        vertices.push(0-50, 120);//這里將原坐標的x坐標左移50
        vertices.push(0, 240);
        vertices.push(120, 0);
        vertices.push(120, 120);
        vertices.push(120, 240);
        vertices.push(240, 0);
        vertices.push(240+50, 120);//這里將原坐標的x坐標右移50
        vertices.push(240, 240);
        
        indices = new Array();
        indices.push(0, 3, 1);
        indices.push(3, 1, 4);
        indices.push(1, 4, 2);
        indices.push(4, 2, 5);
        indices.push(3, 6, 4);
        indices.push(6, 4, 7);
        indices.push(4, 7, 5);
        indices.push(7, 5, 8);
        
        uvtData = new Array();
        uvtData.push(0, 0);
        uvtData.push(0, 0.5);
        uvtData.push(0, 1);
        uvtData.push(0.5, 0);
        uvtData.push(0.5, 0.5);
        uvtData.push(0.5, 1);
        uvtData.push(1, 0);
        uvtData.push(1, 0.5);
        uvtData.push(1, 1);
        backLayer.graphics.beginBitmapFill(bitmapData);
        backLayer.graphics.drawTriangles(vertices, indices, uvtData);

        效果如圖


        上面的變形是將圖片分割成了8個三角形,要實現更多種變形,那只需要將圖片分割成更多的小三角形就可以了

        比如我利用這個函數,制作了一個簡陋的圖片修飾工具,效果如下



        大家可以點擊下面的連接,來測試一下它的效果

        http://lufylegend.com/html5/lufylegend/ps.html

        轉載請注明:轉自lufy_legend的博客

        備注:

        使用drawtriangles函數,你需要下載HTML5開源引擎lufylegend的1.5版或以上版本,lufylegend1.5版發布地址如下

        http://blog.csdn.net/lufy_legend/article/details/8054658

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        HTML5高級編程之圖形扭曲及其應用二(運用篇)

        HTML5高級編程之圖形扭曲及其應用二(運用篇):上次介紹了在html5中實現圖片扭曲效果的原理,并擴展成了drawtriangles函數,下面來詳細講解一下drawtriangles函數的使用方法。并且使用drawtriangles函數實現下面這種處理效果因為這個方法是從AS3移植而來,所以它的使用方法和AS3基本一致,這里是AS3
        推薦度:
        標簽: html5 扭曲 篇)
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久亚洲色WWW成人欧美| 亚洲国产精品SSS在线观看AV| 久久性生大片免费观看性| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 午夜在线a亚洲v天堂网2019| 国产福利视精品永久免费| 亚洲性一级理论片在线观看| 99re6热视频精品免费观看| 亚洲成人黄色网址| 在人线av无码免费高潮喷水| 亚洲va在线va天堂成人| 日本免费一本天堂在线| 人人爽人人爽人人片A免费| 中文字幕精品无码亚洲字| 女同免费毛片在线播放| 亚洲高清在线mv| 国产精品成人免费一区二区 | 亚洲av成人一区二区三区在线观看| 日韩a毛片免费观看| 亚洲午夜国产精品无码| 国产一精品一av一免费爽爽| 亚洲校园春色小说| 免费观看的av毛片的网站| 一级黄色免费毛片| 亚洲精品私拍国产福利在线| 免费a级毛片无码a∨蜜芽试看| 青草青草视频2免费观看| 亚洲av无码一区二区乱子伦as| 四虎最新永久免费视频| 豆国产96在线|亚洲| 亚洲午夜福利在线观看| 免费无码又黄又爽又刺激| 午夜亚洲国产精品福利| 久久久久久亚洲精品| 成年人性生活免费视频| 精品熟女少妇aⅴ免费久久| 亚洲国产成人久久精品app| 免费一看一级毛片全播放| 99热在线观看免费| 国产精品亚洲专区无码不卡| 亚洲一区二区三区四区在线观看|