成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

HTML canvas中translate()與rotate()的理解

GitCafe / 2763人閱讀

摘要:首先看紅色框中的第一行代碼,執(zhí)行后坐標(biāo)系是這樣的第二行代碼旋轉(zhuǎn)后是這樣的注意看此時(shí)軸和軸已經(jīng)改變,以及正方向的方向。

首先,當(dāng)我們?cè)陧?yè)面上初始化canvas時(shí),相當(dāng)于在上面放了一塊畫(huà)布,這塊畫(huà)布我們可以理解為上面有一個(gè)坐標(biāo)系(如下圖),左上角是原點(diǎn),往右是X軸的正方向,往下是Y軸的正方向,我們?cè)诋?huà)布上繪制的內(nèi)容都是基于這個(gè)坐標(biāo)系完成,但是有時(shí)候我們需要對(duì)繪制的內(nèi)容進(jìn)行調(diào)整,例如將上面的一個(gè)圖形旋轉(zhuǎn)某個(gè)角度,或者在畫(huà)布正中心畫(huà)一個(gè)圖形,我們就可以通過(guò)translate和rotate將坐標(biāo)系進(jìn)行移動(dòng)之后再進(jìn)行繪制.

還有,rotate的旋轉(zhuǎn)是以原點(diǎn)為基準(zhǔn)進(jìn)行旋轉(zhuǎn),,這一點(diǎn)很重要

功能與參數(shù)介紹
函數(shù) 參數(shù) 描述
translate dx,dx 將坐標(biāo)系在X軸和Y軸移動(dòng)的距離
rotate angle 坐標(biāo)系旋轉(zhuǎn)的角度,順時(shí)針為正,,逆時(shí)針為負(fù)
save 保存當(dāng)前坐標(biāo)系的狀態(tài)
restore 恢復(fù)上一次坐標(biāo)系狀態(tài)

當(dāng)我們不對(duì)畫(huà)布進(jìn)行旋轉(zhuǎn)和移動(dòng)的時(shí)候,在上面繪制一個(gè)矩形,是這樣子的

可以看到此時(shí)是基于左上角進(jìn)行繪制的,如果我們用translate將它向右和向下移動(dòng)200px和100px呢

可以看到,畫(huà)布位置沒(méi)有改變,我們移動(dòng)的只是坐標(biāo)系,如果我們繼續(xù)在上面繪制圖形,仍然是以現(xiàn)在這個(gè)位置的坐標(biāo)系為準(zhǔn),如果我們只想在這個(gè)位置畫(huà)一次之后就恢復(fù)坐標(biāo)系原始位置,我們應(yīng)該在移動(dòng)之前調(diào)用save()保存狀態(tài),繪制后調(diào)用restore()恢復(fù).

如果我們想將最開(kāi)始的矩形以自身中心旋轉(zhuǎn)90°呢,想看代碼和效果圖

emmmm...沒(méi)有計(jì)算好,導(dǎo)致有點(diǎn)跑偏,但是它還是以自己為中心轉(zhuǎn)了90°,但是沒(méi)事,不影響理解rorate和translate這兩個(gè)函數(shù)配合的理解。
首先看紅色框中的第一行代碼,執(zhí)行后坐標(biāo)系是這樣的

第二行代碼旋轉(zhuǎn)后是這樣的

注意看此時(shí)X軸和Y軸已經(jīng)改變,以及正方向的方向。第三行代碼執(zhí)行后如下

為什么會(huì)往右上方跑呢?因?yàn)槲覀僼ranslate中的參數(shù)是負(fù)數(shù),而此時(shí)坐標(biāo)軸的正值方向是左邊和下邊,所以是往右邊和上邊跑

為什么原點(diǎn)會(huì)跑出畫(huà)布之外?因?yàn)閄軸移動(dòng)的距離是width/2,而豎直方向空間不足,就繼續(xù)往上走了。

通過(guò)坐標(biāo)系來(lái)說(shuō)明這兩個(gè)函數(shù)主要是因?yàn)樽罱龅囊粋€(gè)項(xiàng)目中需要將畫(huà)布上面繪制的圖片以圖片自身為中心旋轉(zhuǎn)90°或者180°,而看了許多博客后比較少通過(guò)坐標(biāo)系來(lái)講解這兩個(gè)函數(shù),嘗試了很久之后發(fā)現(xiàn)通過(guò)坐標(biāo)系來(lái)理解雖然麻煩,但是感覺(jué)簡(jiǎn)單點(diǎn)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/54521.html

相關(guān)文章

  • HTML canvastranslate()rotate()理解

    摘要:首先看紅色框中的第一行代碼,執(zhí)行后坐標(biāo)系是這樣的第二行代碼旋轉(zhuǎn)后是這樣的注意看此時(shí)軸和軸已經(jīng)改變,以及正方向的方向。 首先,當(dāng)我們?cè)陧?yè)面上初始化canvas時(shí),相當(dāng)于在上面放了一塊畫(huà)布,這塊畫(huà)布我們可以理解為上面有一個(gè)坐標(biāo)系(如下圖),左上角是原點(diǎn),往右是X軸的正方向,往下是Y軸的正方向,我們?cè)诋?huà)布上繪制的內(nèi)容都是基于這個(gè)坐標(biāo)系完成,但是有時(shí)候我們需要對(duì)繪制的內(nèi)容進(jìn)行調(diào)整,例如將上面的...

    FreeZinG 評(píng)論0 收藏0
  • canvas入門(mén)里,你沒(méi)注意到那些知識(shí)

    摘要:但需要注意的是,需在使用前調(diào)用。當(dāng)然,你愿意的話也可以兩者結(jié)合著用。繪制圖像相信很多入門(mén)的,都看不到這個(gè)地方,不就是繪制圖像的嘛,啊不準(zhǔn)確,是繪制圖形的。明確的說(shuō),是指圍繞原點(diǎn)圖像旋轉(zhuǎn)弧度。 前言 本文寫(xiě)在七月底,進(jìn)來(lái)不加班就整理了一下,一些非?;A(chǔ)的知識(shí),對(duì)于canvas剛?cè)腴T(mén)的人來(lái)說(shuō),值得閱讀一下。 來(lái)個(gè)氣勢(shì)如虹的開(kāi)頭 與看各種文章相比,我更喜歡數(shù)學(xué)里的邏輯;與學(xué)習(xí)各種日新月異的框...

    tuniutech 評(píng)論0 收藏0
  • HTML5 Canvas(基礎(chǔ)知識(shí))

    摘要:比如弧線或圓形從到繪制一條以為圓心,為半徑的弧線,其中和用弧度表示,為時(shí),順時(shí)針畫(huà)弧線,反之,逆時(shí)針畫(huà)弧線。 最近筆者在學(xué)習(xí)HTML5的新元素,會(huì)分享一些基礎(chǔ)知識(shí)以及小例子,最終使用實(shí)現(xiàn)一個(gè)繪制簡(jiǎn)單圖表(條形圖、線圖或者餅圖)的js庫(kù),會(huì)更新一到兩篇文章~下面我們開(kāi)始吧~ 確認(rèn)寬度和高度 我們首先應(yīng)該指定標(biāo)簽即畫(huà)布的寬度和高度屬性,并在開(kāi)始和閉合標(biāo)簽之間添加后備信息: ...

    YanceyOfficial 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<