国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

FreeZinG / 1176人閱讀

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

首先,當(dāng)我們?cè)陧撁嫔铣跏蓟痗anvas時(shí),相當(dāng)于在上面放了一塊畫布,這塊畫布我們可以理解為上面有一個(gè)坐標(biāo)系(如下圖),左上角是原點(diǎn),往右是X軸的正方向,往下是Y軸的正方向,我們?cè)诋嫴忌侠L制的內(nèi)容都是基于這個(gè)坐標(biāo)系完成,但是有時(shí)候我們需要對(duì)繪制的內(nèi)容進(jìn)行調(diào)整,例如將上面的一個(gè)圖形旋轉(zhuǎn)某個(gè)角度,或者在畫布正中心畫一個(gè)圖形,我們就可以通過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ì)畫布進(jìn)行旋轉(zhuǎn)和移動(dòng)的時(shí)候,在上面繪制一個(gè)矩形,是這樣子的

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

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

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

emmmm...沒有計(jì)算好,導(dǎo)致有點(diǎn)跑偏,但是它還是以自己為中心轉(zhuǎn)了90°,但是沒事,不影響理解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ì)跑出畫布之外?因?yàn)閄軸移動(dòng)的距離是width/2,而豎直方向空間不足,就繼續(xù)往上走了。

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/93673.html

相關(guān)文章

  • HTML canvastranslate()rotate()理解

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

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

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

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

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

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<