婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 實例講解利用HTML5 Canvas API操作圖形旋轉的方法

實例講解利用HTML5 Canvas API操作圖形旋轉的方法

熱門標簽:高德地圖標注賓館位置 電話機器人如何 飛亞外呼系統 西寧智能外呼系統加盟 聯通400電話申請 百應電銷機器人產業 電視購物電銷外呼系統 杭州營銷電銷機器人供應商 貸款電銷人工和機器人哪個好

作為web開發者,我一直在和HTML5 canvas元素打交道。渲染圖片是一個大的分支,十分重要而且很常用,所以,今天的教程是關于畫布圖像展示以及如何旋轉圖像,說不定是你現在真正想要的好東西。

總的來說,canvas旋轉有兩種方式:中心旋轉和參照點旋轉。熟練應用旋轉功能,對你的開發作品會有極大的幫助。

關于對象的中心旋轉
第一個類型的旋轉,我們要看看是對其中心旋轉一個對象。實現使用畫布元素,這是一個最簡單的旋轉類型。我們把一只大猩猩的圖片作為素材進行試驗。
基本的想法是,我們要把帆布按照一個中心點旋轉,旋轉畫布,然后把畫布回到原來的位置。如果你有一些經驗關于圖形引擎,那么這聽起來應該很熟悉。代碼大概就是這樣:(點擊看效果)

JavaScript Code復制內容到剪貼板
  1. function onload() {   
  2.     var canvas = document.getElementById('c1');   
  3.     var ctx1 = canvas.getContext('2d');   
  4.     var image1 = new Image();   
  5.     image1.onload = function() {   
  6.       // regular rotation about center   
  7.       var xpos = canvas.width/2;   
  8.       var ypos = canvas.height/2;   
  9.       ctx1.drawImage(image1, xpos - image1.width / 2, ypos - image1.height / 2);   
  10.       ctx1.save();   
  11.       ctx1.translate(xpos, ypos);   
  12.       ctx1.rotate(47 * Math.PI / 180);//旋轉47度   
  13.       ctx1.translate(-xpos, -ypos);   
  14.       ctx1.drawImage(image1, xpos - image1.width / 2, ypos - image1.height / 2);   
  15.       ctx1.restore();   
  16.     }   
  17.     image1.src = 'image.png';   
  18.   }     

注釋已經非常詳細,但我仍舊想提一點:.save()和.restore()。他們的作用是保存旋轉之前的畫布,然后旋轉后恢復。有效地避免了和其他渲染沖突,十分關鍵,許多朋友沒有順利進行旋轉,大多都是這個原因。

圍繞某個點旋轉
第二個類型是圖像圍繞空間的某個點進行旋轉,這將變得比較復雜。可為什么要這樣做呢?很多情況下,你需要把對象參照另一個對象旋轉,單一的圍繞中心旋轉無法滿足需求。而且后者會更常用,比如在做網頁游戲中,經常會用到旋轉。


JavaScript Code復制內容到剪貼板

  1. function onload() {   
  2.     var canvas2 = document.getElementById('c2');   
  3.     var ctx2 = canvas2.getContext('2d');   
  4.     // regular rotation about point   
  5.     var image2 = new Image();   
  6.     image2.onload = function() {   
  7.       // regular rotation about a point   
  8.       var angle = 120 * Math.PI / 180; // angle of rotation in radians   
  9.       var rx = 300, ry = 200; // the rotation x and y   
  10.       var px = 300, py = 50; // the objects center x and y   
  11.       var radius = ry - py; // the difference in y positions or the radius   
  12.       var dx = rx + radius * Math.sin(angle); // the draw x    
  13.       var dy = ry - radius * Math.cos(angle); // the draw y   
  14.       ctx2.drawImage(image2, 300 - image2.width / 2, 50 - image2.height / 2);   
  15.       ctx2.beginPath();   
  16.       ctx2.arc(300,200,5,0,Math.PI*2,false);   
  17.       ctx2.closePath();   
  18.       ctx2.fillStyle = 'rgba(0,255,0,0.25)';   
  19.       ctx2.fill();   
  20.          
  21.       ctx2.save();   
  22.       ctx2.translate(dx, dy);   
  23.       ctx2.rotate(angle);   
  24.       ctx2.translate(-dx, -dy);   
  25.       ctx2.drawImage(image2, dx - image2.width / 2, dy - image2.height / 2);   
  26.       ctx2.restore();   
  27.     }   
  28.     image2.src = 'smallimage.png';   
  29.   }  

代碼簡潔,作用是把一張圖片按照一個點旋轉了120度,這張圖片更形象。

繪制魔性Logo
這是在度娘上看到了一個logo,巧妙運用了旋轉變換,用一個很簡單矩形,通過旋轉變換,變成了一個很漂亮的logo。這logo是不是很有魔性?童鞋們動動腦,嘗試實現一下它。下面,提供我實現它的代碼。

JavaScript Code復制內容到剪貼板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF-8">   
  5.     <title>繪制魔性Logo</title>   
  6.     <style>   
  7.         body { background: url("./images/bg3.jpg") repeat; }  
  8.         #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
  9.     </style>   
  10. </head>   
  11. <body>   
  12. <div id="canvas-warp">   
  13.     <canvas id="canvas">   
  14.         你的瀏覽器居然不支持Canvas?!趕快換一個吧!!   
  15.     </canvas>   
  16. </div>   
  17.   
  18. <script>   
  19.     window.onload = function(){   
  20.         var canvas = document.getElementById("canvas");   
  21.         canvas.width = 800;   
  22.         canvas.height = 600;   
  23.         var context = canvas.getContext("2d");   
  24.         context.fillStyle = "#FFF";   
  25.         context.fillRect(0,0,800,600);   
  26.   
  27.         for(var i=1; i<=10; i++){   
  28.             context.save();   
  29.             context.translate(400,300);   
  30.             context.rotate(36 * i * Math.PI / 180);   
  31.             context.fillStyle = "rgba(255,0,0,0.25)";   
  32.             context.fillRect(0, -200, 200, 200);   
  33.             context.restore();   
  34.         }   
  35.     };   
  36. </script>   
  37. </body>   
  38. </html>  

運行結果:

是不是非常的酷?這個圖形稍微分析一下發現還是蠻簡單的,就是讓一個正放形,以屏幕中點(即初始正方形左下角頂點)為圓心進行旋轉。

藝術是不是很美妙?大家一定以及體會到了Canvas的奇妙,簡簡單單的幾行代碼就能實現無窮無盡的效果。只要腦洞夠大,沒有什么是不可以實現的。所以,揚起咱們的藝術家的旗幟,加快步伐,繼續前進!

標簽:內蒙古 安慶 玉溪 煙臺 邯鄲 牡丹江 晉中 撫州

巨人網絡通訊聲明:本文標題《實例講解利用HTML5 Canvas API操作圖形旋轉的方法》,本文關鍵詞  實例,講解,利用,HTML5,Canvas,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《實例講解利用HTML5 Canvas API操作圖形旋轉的方法》相關的同類信息!
  • 本頁收集關于實例講解利用HTML5 Canvas API操作圖形旋轉的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美性生活一区| 一区二区三区免费看视频| 国产精品热久久久久夜色精品三区| 中文字幕一区在线| 国产尤物一区二区| 国产色综合久久| 国产精品一区二区三区99| 欧美tk—视频vk| 国产综合久久久久久鬼色| 欧美r级电影在线观看| 激情综合色综合久久| 国产亚洲欧美一区在线观看| 国产另类ts人妖一区二区| 精品成人a区在线观看| 久久99国产精品久久99| 中文字幕欧美激情| 91老师片黄在线观看| 一区二区三区精品在线观看| 在线观看国产日韩| 亚洲线精品一区二区三区| 欧美日韩dvd在线观看| 蜜桃久久久久久久| 国产精品区一区二区三| 欧美午夜不卡在线观看免费| 开心九九激情九九欧美日韩精美视频电影| 日韩一区二区精品| 99久久精品国产导航| 青青草原综合久久大伊人精品| 2020国产精品久久精品美国| 99久久777色| 成人黄页在线观看| 懂色av中文一区二区三区| 欧美调教femdomvk| 一区在线观看免费| 亚洲另类春色校园小说| 国产在线国偷精品产拍免费yy | 精品日产卡一卡二卡麻豆| 成人午夜视频福利| 国产精品传媒入口麻豆| 欧美高清精品3d| 美腿丝袜一区二区三区| 亚洲综合一区在线| 国产亚洲一区二区三区四区| 欧美日韩久久久| 欧美视频一区二区在线观看| 91网页版在线| 亚洲视频网在线直播| 成人免费看黄yyy456| 狂野欧美性猛交blacked| 五月天中文字幕一区二区| 亚洲免费观看高清完整版在线观看 | 一本到不卡免费一区二区| 国产精品正在播放| 成人免费看的视频| 一本色道久久综合狠狠躁的推荐| 成人午夜av电影| 成人一二三区视频| 欧美性猛片aaaaaaa做受| 欧美丰满一区二区免费视频 | 成人欧美一区二区三区小说| 中文字幕在线观看不卡| 日韩伦理电影网| 亚洲成人在线网站| 久草在线在线精品观看| 成人av片在线观看| 91激情五月电影| 日韩亚洲欧美中文三级| 国产精品青草久久| 亚洲激情图片一区| 国产尤物一区二区在线| 欧美主播一区二区三区美女| 91精品免费在线| 一区二区三区四区在线| 久久99精品久久久| 色噜噜狠狠色综合中国| 欧美巨大另类极品videosbest | 国产精品三级电影| 久久国内精品视频| 欧美美女激情18p| 一区二区高清在线| 成人激情小说乱人伦| 精品毛片乱码1区2区3区| 亚洲乱码日产精品bd| 国产成人在线视频网站| 精品黑人一区二区三区久久| 午夜精品久久久久久久久久久| 色综合久久99| 亚洲精品久久久蜜桃| 国产69精品久久久久毛片| 久久青草国产手机看片福利盒子 | 91精品国产一区二区| 亚洲一区二区精品久久av| 一本色道久久加勒比精品| 亚洲免费观看高清完整版在线 | 色域天天综合网| 国产精品网站在线观看| 成人av网站在线观看免费| 国产精品卡一卡二卡三| 91在线小视频| 一区二区三区在线观看欧美 | 日韩精品免费专区| 国产精品萝li| 香蕉成人伊视频在线观看| 91精品国产综合久久精品app| 蜜臀精品久久久久久蜜臀| 精品美女被调教视频大全网站| 精品一区二区三区日韩| 亚洲特级片在线| 欧美大片国产精品| 色综合天天在线| 国产一区二区不卡| 亚洲va欧美va天堂v国产综合| 精品国产免费人成在线观看| 99这里都是精品| 奇米在线7777在线精品| 日韩理论片一区二区| 日本一区二区综合亚洲| 老司机精品视频一区二区三区| 国产精品一二三四五| 国产一区在线观看视频| 91精品国产免费久久综合| 亚洲日本乱码在线观看| 国产美女精品在线| 欧美草草影院在线视频| 激情综合色播激情啊| 日韩专区中文字幕一区二区| 一本大道久久a久久综合| 91精品国产综合久久久久| 久久久久久久电影| 亚洲欧美日韩一区二区| 美美哒免费高清在线观看视频一区二区 | av在线不卡网| 亚洲色图另类专区| 欧美一区二区三区免费大片| 99re成人在线| 国产乱国产乱300精品| 亚洲卡通欧美制服中文| 国产欧美综合在线观看第十页| 日韩视频在线观看一区二区| 欧美亚日韩国产aⅴ精品中极品| 国产在线不卡视频| 日韩av电影免费观看高清完整版| 亚洲日本电影在线| 国产无一区二区| 亚洲欧洲精品成人久久奇米网| 日韩一区欧美一区| 中文字幕一区二区三区在线不卡| 久久久99精品久久| 国产精品久久久久一区二区三区共| 久久精品综合网| 欧美精品一区二区三区一线天视频| 欧美午夜精品一区| 欧美亚洲国产一区二区三区va| 欧美日韩免费电影| 91精品欧美综合在线观看最新 | 97精品久久久午夜一区二区三区| 国产剧情一区二区| 欧美日韩一二区| 欧美激情一区二区在线| 国产精品高潮呻吟| 亚洲另类在线制服丝袜| 亚洲bdsm女犯bdsm网站| 99久久伊人网影院| 91精品国产欧美日韩| 久久久久97国产精华液好用吗| 欧美极品xxx| 日韩av在线播放中文字幕| jlzzjlzz欧美大全| 久久久久99精品国产片| 国产精品国产三级国产普通话蜜臀 | 国产偷国产偷亚洲高清人白洁| 亚洲日本一区二区三区| 性欧美大战久久久久久久久| 国产成人精品免费| 日韩欧美中文字幕公布| 午夜精品视频在线观看| 美女视频黄免费的久久| 国产传媒欧美日韩成人| 久久网站最新地址| 日韩精品视频网站| 欧美日韩一区二区三区四区五区| 2023国产精华国产精品| 一区二区不卡在线视频 午夜欧美不卡在| 麻豆精品国产91久久久久久| 欧美偷拍一区二区| 亚洲欧美一区二区三区久本道91| 麻豆精品新av中文字幕| 欧美日韩激情在线| 日韩电影在线免费观看| 国产欧美一区二区精品久导航 | 国产麻豆视频一区二区| www久久久久| 国产福利91精品| 日韩二区三区四区| 色哟哟国产精品免费观看| 亚洲精品一区二区三区四区高清 | 成人高清免费在线播放| 亚洲国产日产av| 欧美另类变人与禽xxxxx| 免费成人av在线|