亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

html5 Canvas畫圖教程(6)—canvas里畫曲線之arcTo方法

2024-08-26 00:16:07
字體:
來源:轉載
供稿:網友

點評:arc與arcTo,從名字都能看出來相似。arcTo也是畫曲線的方法,而且他畫出的曲線也是正圓的一段弧線。但他的參數和arc簡直是不共戴天~,感興趣的朋友可以了解下哦,接下來詳細介紹arcTo方法的應用

上一篇文章講了canvas的arc方法,這一篇講和他有關的arcTo方法。
arc與arcTo,從名字都能看出來相似。arcTo也是畫曲線的方法,而且他畫出的曲線也是正圓的一段弧線。但他的參數和arc簡直是不共戴天~
ctx.arcTo(x1,y1,x2,y2,radius);arcTo的參數中包括兩個點,而且這兩個點中并沒有表示圓心的點,僅僅最后的參數是圓的半徑,表示arcTo和圓有那么點關系。
網上關于arcTo的文章很少,好不容易找到一篇還是外國的;而且canvas畫圖木有直觀工具,只能靠猜,arcTo害我猜了半天。。
為了直觀的描述,我采取了一種輔助辦法:arcTo畫到哪里,我就用lineTo也畫到相應的點,以查看他們的關系。就是畫輔助線。

復制代碼

代碼如下:


var x0=100,
y0=400,
x1 = 500,
y1 = 400,
x2 = 450,
y2 = 450;
ctx.beginPath();
ctx.moveTo(x0,y0);
ctx.strokeStyle = "#f00";
ctx.lineWidth = 2;
ctx.arcTo(x1,y1,x2,y2,20);
ctx.stroke();
ctx.beginPath();
ctx.strokeStyle = "rgba(0,0,0,0.5)";
ctx.lineWidth = 1;
ctx.moveTo(x0,y0);
ctx.lineTo(x1,y1);
ctx.fillText('x1,y1',x1+10,y1+10)
ctx.lineTo(x2,y2);
ctx.fillText('x2,y2',x2+10,y2)
ctx.stroke();


看起來代碼有點多,其實很簡單。我用了幾個變量來保存坐標值,其余的都是canvas的操作了。
變量說明:x0,y0是起點坐標,x1,y1是第一個點坐標,x2,y2就是第二個點坐標。其中lineTo畫的直線是半透明的1px黑線,arcTo畫的線條是2px的紅線。
刷新頁面,即可看到下圖。


不得不說這條紅線很像一個鉤子。
于是arcTo的規律就找到了,他其實是通過起點,第1點,第2點的兩條直線,組成了一個夾角,而這兩條線,也是參數圓的切線。
其中圓的半徑決定了圓會在什么位置與線條發生切邊。就像一個球往一個死角里面滾,球越小就滾得越進去,越靠近死角;球大則反之。
這是一個很嚴肅的學術問題,大家可不要YY。
讓我們把球球變大吧!

復制代碼

代碼如下:


ctx.arcTo(x1,y1,x2,y2,50); //半徑改成50


html5 Canvas畫圖教程(6)—canvas里畫曲線之arcTo方法


如圖,你可以看到圓弧變得很大,甚至都不和直線相切了。
當然,實際上他們還是相切的,因為切線是無限延長的。
我們繼續探索,把圓繼續變大,把起點與第1點的距離縮短。

復制代碼

代碼如下:


var x0=400; //起點x坐標從100變400
...
ctx.arcTo(x1,y1,x2,y2,100); //圓的半徑變大到100然后你就會看到這么個奇特的圖形。


html5 Canvas畫圖教程(6)—canvas里畫曲線之arcTo方法

本來是個鉤子,現在被硬生生的掰彎了,還掰到反方向了!有點像酒瓶架了。
不過,大家注意看,這個圓依然是和兩條線相切的!只是現在兩條線的長度都滿足不了這個圓了!他已經把兩條線都無線延長了!
這個鉤子柄什么時候會發生反轉呢?如果你幾何學的好,你可以試著理解一下點與圓的切線方程。
arcTo方法中有個很重要的點,這個重要的點就是代碼中的(x1,y1),只要他到圓的切點的距離,超過了他到起點(x0,y0)的距離,就會發生反轉。
從圖中我們可以看到,(x2,y2)這個點的坐標可以無限變化,只要他始終是切線上的一個點,那么在圓的半徑不變的情況下,arcTo畫出的圖形不會有任何變化。這點需要特別注意。
讓我用我拿不上臺面的幾何知識來驗證下這個命題吧。為了方便計算,我先把兩條線的夾角改成90度。

復制代碼

代碼如下:


var x0=100,
y0=400,
x1 = 500,
y1 = 400,
x2 = 500,
y2 = 450;


更改后就是90度張開了喲!我們保持球的半徑不變。刷新后:

html5 Canvas畫圖教程(6)—canvas里畫曲線之arcTo方法


我們把y2變大,也就是延長了一條切線,把他變成550,刷新后:

html5 Canvas畫圖教程(6)—canvas里畫曲線之arcTo方法


 
切線是延長了,但arcTo畫出的紅線沒有任何變化。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲精品一区| 日本a级片电影一区二区| 91精品一区二区| 欧美视频一区二区三区…| 国产精品人人做人人爽| 久久精品视频网站| 久久国产精品久久久久久| 色婷婷久久av| 国产精品高潮呻吟久久av黑人| 亚洲精品456在线播放狼人| 日韩电影在线观看永久视频免费网站| 日韩av影片在线观看| 亚洲人精选亚洲人成在线| 国产精品久久久久久av福利软件| 久久亚洲成人精品| 亚洲欧美日韩天堂一区二区| 国产精品久久久久久av| 国产精品激情av电影在线观看| 亚洲美女av在线| 亚洲精品视频中文字幕| 亚洲视频欧洲视频| 久久久欧美精品| 日本久久亚洲电影| 国产精品久久久久久超碰| 粉嫩老牛aⅴ一区二区三区| 91久久在线播放| 日韩三级成人av网| 欧美激情第一页xxx| 3344国产精品免费看| 人妖精品videosex性欧美| 成人h视频在线观看播放| 欧美精品少妇videofree| 久久久久久成人| 欧美巨猛xxxx猛交黑人97人| 国产精品海角社区在线观看| 亚洲a在线观看| 亚洲色图五月天| 国内自拍欧美激情| 这里只有精品丝袜| 色综久久综合桃花网| 亚洲天堂成人在线视频| 亚洲图片欧美日产| 欧美精品videofree1080p| 92看片淫黄大片欧美看国产片| 日本精品va在线观看| 色久欧美在线视频观看| 自拍视频国产精品| 亚洲欧美一区二区三区在线| 欧美日韩美女在线观看| 国产精品69久久久久| 国产精品v片在线观看不卡| 91在线高清视频| 午夜精品福利在线观看| 亚洲欧美日韩一区二区三区在线| 亚洲欧美精品一区二区| 亚洲日韩欧美视频| 91精品国产色综合久久不卡98口| 91久久中文字幕| 亚洲人成欧美中文字幕| 亚洲视频精品在线| 亚洲第一精品久久忘忧草社区| 国产97在线视频| 国产美女久久久| 久久精品国产久精国产思思| 在线视频日本亚洲性| 国内精品久久久久久影视8| 久久精品这里热有精品| 欧美日韩国产精品一区| 欧美乱妇40p| 91香蕉电影院| 欧美成人sm免费视频| 欧美色道久久88综合亚洲精品| 日韩av成人在线观看| 亚洲色图18p| 日韩在线欧美在线国产在线| 97视频在线看| 91成品人片a无限观看| 日韩免费观看高清| 国产成人亚洲综合91精品| 国产视频精品一区二区三区| 亚洲丁香久久久| 欧美激情一级欧美精品| 国产午夜一区二区| 九九久久久久99精品| 亚洲色在线视频| 欧美中文字幕在线视频| 国产精品678| 欧美国产高跟鞋裸体秀xxxhd| 国产精品影片在线观看| 国产日韩欧美成人| 亚洲香蕉av在线一区二区三区| 久久久久久亚洲精品中文字幕| 日本免费在线精品| 欧美日本在线视频中文字字幕| 亚洲人成77777在线观看网| 久久亚洲精品成人| 日产日韩在线亚洲欧美| 一区二区三欧美| 日韩av在线免费播放| 久久视频在线免费观看| 久久国产精品久久国产精品| 亚洲自拍小视频| 日韩欧美国产黄色| 日韩av网站导航| 久久精品人人做人人爽| 久久韩剧网电视剧| 亚洲老头同性xxxxx| 日韩在线www| 欧美日本在线视频中文字字幕| 成人激情免费在线| 久久99国产综合精品女同| 国产成人精品免高潮在线观看| 午夜精品久久久久久久99黑人| 国产亚洲激情在线| 国产z一区二区三区| 国产免费久久av| 中文欧美日本在线资源| 国产精品久久久久久网站| 亚洲风情亚aⅴ在线发布| 蜜月aⅴ免费一区二区三区| 成人深夜直播免费观看| 51色欧美片视频在线观看| 国产欧美一区二区三区视频| 欧美在线观看一区二区三区| 国产aⅴ夜夜欢一区二区三区| 国产精国产精品| 久久精品国产亚洲精品| 亚洲成人三级在线| 日韩免费观看高清| 91久久精品在线| 欧美中文在线观看国产| 国产欧美一区二区三区在线看| 久久频这里精品99香蕉| 欧美成人午夜激情| 成人国产亚洲精品a区天堂华泰| 91久久综合亚洲鲁鲁五月天| 亚洲成人国产精品| 成人激情视频在线观看| 日韩成人久久久| 久久成人这里只有精品| 欧美有码在线观看视频| 成人黄色在线播放| 亚洲人午夜精品免费| 亚洲欧美日韩精品久久| 成人激情视频在线观看| 青草青草久热精品视频在线观看| 亚洲男人天堂手机在线| 成人免费网站在线观看| 日韩网站免费观看| 91夜夜未满十八勿入爽爽影院| 日本亚洲欧洲色| 日韩中文字幕免费| 97超碰国产精品女人人人爽| 伊人伊成久久人综合网站| 亚洲伊人久久综合| 亚洲欧洲美洲在线综合| 国产99久久精品一区二区永久免费| 日韩av在线天堂网| 久久久中精品2020中文| 韩国美女主播一区| 国产精品aaaa| 久久久久久久久久亚洲| 久久中国妇女中文字幕| 亚洲一区美女视频在线观看免费|