最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)沿五角星形線擺動(dòng)的小圓實(shí)例詳解

 更新時(shí)間:2020年07月28日 11:06:22   作者:aTeacher  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)沿五角星形線擺動(dòng)的小圓實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

五角星形線的笛卡爾坐標(biāo)方程式可設(shè)為:

r=10+(3*sin(θ*2.5))^2 

x=r*cos(θ)

y=r*sin(θ) (0≤θ≤2π)

根據(jù)這個(gè)曲線方程,在[0,2π]區(qū)間取一系列角度值,根據(jù)給定角度值計(jì)算對(duì)應(yīng)的各點(diǎn)坐標(biāo),然后在計(jì)算出的坐標(biāo)位置繪制一個(gè)填充色交替變換的小圓,從而得到沿五角星形線擺動(dòng)的小圓的動(dòng)畫效果。

編寫如下的HTML代碼。

<!DOCTYPE html>

<html>

<head>

<title>沿曲線擺動(dòng)的小圓</title>

</head>

<body>

<canvas id="myCanvas" width="400" height="400" style="border:3px double #996633;">

</canvas>

<script type="text/javascript">

 var canvas = document.getElementById('myCanvas');

 var context = canvas.getContext('2d');

 var i = 0;

 var j = Math.PI/32;

 var t = 0;

 var col = ['red','orange','yellow','green','cyan','blue','magenta'];

 function loop()

 {

 t = t + 1;

 i = i + j;

 if (t > 6) { t = 0; }

 var r=10+9*Math.sin(2.5*i)*Math.sin(2.5*i);

 var x = 7*r*Math.cos(i)+200;

 var y = 7*r*Math.sin(i)+200;

 context.beginPath();

 context.moveTo(200, 200);

 context.lineTo(x, y);

 context.lineCap = 'round';

 context.strokeStyle = 'rgba(50,100,255,0.6)';

 context.stroke();

 context.beginPath();

 context.moveTo(200, 200);

 context.arc(x, y, 8, 0, 2 * Math.PI);

 context.fillStyle = col[t];

 context.fill();

 if (i>2*Math.PI)

 {

 j =-Math.PI/32;

 context.clearRect(0, 0, 400, 400);

 }

 if (i<0)

 { 

 j = Math.PI/32;

 context.clearRect(0, 0,400, 400);

 }

 }

 setInterval('loop()',300);

</script>

</body>

</html>

在瀏覽器中打開包含這段HTML代碼的html文件,可以在瀏覽器窗口中呈現(xiàn)出如圖1所示的沿五角星形線擺動(dòng)的小圓動(dòng)畫效果。

圖1 沿五角星形線擺動(dòng)的小圓

將上面程序中的語句

var r=10+9*Math.sin(2.5*i)*Math.sin(2.5*i);

var x = 7*r*Math.cos(i)+200;

var y = 7*r*Math.sin(i)+200;

改寫為:

 var e=80*(1+Math.cos(2*i)/4);

  var f=e*(1+Math.sin(4*i));

  var x=200+f*Math.cos(i);

  var y=200-f*Math.sin(i);

就可以在畫布中看到如圖2所示的沿四瓣花型線擺動(dòng)的小圓。

圖2 沿四瓣花型線擺動(dòng)的小圓

若改寫為:

var r = 200 * Math.pow(Math.cos(i/3),3);

 var x = 200 + r * Math.sin(i);

 var y = 110 + r * Math.cos(i);

同時(shí)修改 if (i>2*Math.PI) 為 if (i>3*Math.PI)

就可以在畫布中看到如圖3所示的沿蘋果形線擺動(dòng)的小圓。

圖3 沿蘋果形線擺動(dòng)的小圓

若改寫為:

var r=100*Math.pow(Math.cos(2*i),0.5);

var x = 200 + 160*Math.sin(i)*Math.sin(i)*Math.sin(i);

var y = -(-170+ 10*(13*Math.cos(i)- 5*Math.cos(2*i) - 2*Math.cos(3*i) - Math.cos(4*i)));

就可以在畫布中看到如圖4所示的沿心形線擺動(dòng)的小圓。

圖4 沿心形線擺動(dòng)的小圓

有興趣的讀者,可以根據(jù)自己感興趣的曲線的參數(shù)方程,適當(dāng)修改坐標(biāo)位置(x,y)的計(jì)算語句,就可以看到沿指定曲線擺動(dòng)的小圓的動(dòng)畫效果。

到此這篇關(guān)于JavaScript實(shí)現(xiàn)沿五角星形線擺動(dòng)的小圓實(shí)例詳解的文章就介紹到這了,更多相關(guān)JavaScript 沿五角星形線擺動(dòng)的小圓內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS動(dòng)態(tài)更改div高度實(shí)現(xiàn)代碼例子

    JS動(dòng)態(tài)更改div高度實(shí)現(xiàn)代碼例子

    在Web開發(fā)中通過使用JavaScript可以動(dòng)態(tài)地修改HTML元素的屬性和樣式,下面這篇文章主要給大家介紹了關(guān)于JS動(dòng)態(tài)更改div高度實(shí)現(xiàn)的相關(guān)資料,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-11-11
  • 一文全面解析JS中的this綁定規(guī)則

    一文全面解析JS中的this綁定規(guī)則

    寫過JavaScript的都知道,JS中的this相對(duì)來講是比較難以捉摸的,尤其在一些復(fù)雜的場(chǎng)景下的指向總是讓人摸不著頭腦,所以這篇文章我們就來系統(tǒng)的學(xué)習(xí)和研究一下this的綁定規(guī)則,需要的朋友可以參考下
    2024-04-04
  • JS解析XML實(shí)例分析

    JS解析XML實(shí)例分析

    這篇文章主要介紹了JS解析XML的方法,實(shí)例分析了javascript針對(duì)IE瀏覽器與非IE瀏覽器解析XML文件的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-01-01
  • uni-app分包項(xiàng)目實(shí)戰(zhàn)總結(jié)

    uni-app分包項(xiàng)目實(shí)戰(zhàn)總結(jié)

    在使用uniapp開發(fā)過程中,隨著我們的代碼工程越來越大,必然會(huì)面臨一個(gè)問題,就是打出來的包會(huì)越來越大,下面這篇文章主要給大家介紹了關(guān)于uni-app分包項(xiàng)目實(shí)戰(zhàn)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • JavaScript中切割截取字符串的7種方法

    JavaScript中切割截取字符串的7種方法

    在開發(fā)中常常會(huì)需要截取字符串,而 JavaScript 提供了很多種方法實(shí)現(xiàn)截取操作,本文主要介紹了JavaScript中切割截取字符串的7種方法,感興趣的可以了解一下
    2024-02-02
  • 使用js復(fù)制鏈接中的部分文字的方法

    使用js復(fù)制鏈接中的部分文字的方法

    這篇文章介紹了使用js復(fù)制鏈接中的部分文字的方法,技巧很實(shí)用,需要的朋友可以參考下
    2015-07-07
  • 解析javascript中鼠標(biāo)滾輪事件

    解析javascript中鼠標(biāo)滾輪事件

    這篇文章主要給大家詳細(xì)介紹了javascript中鼠標(biāo)滾輪事件,圖文并茂,十分的詳細(xì),有需要的小伙伴可以參考下。
    2015-05-05
  • JS中的回調(diào)函數(shù)實(shí)例淺析

    JS中的回調(diào)函數(shù)實(shí)例淺析

    這篇文章主要介紹了JS中的回調(diào)函數(shù),結(jié)合實(shí)例形式簡(jiǎn)單分析了javascript回調(diào)函數(shù)的感念、功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-03-03
  • JavaScript中奇葩的假值示例應(yīng)用

    JavaScript中奇葩的假值示例應(yīng)用

    這篇文章主要介紹了JavaScript中奇葩的假值應(yīng)用,需要的朋友可以參考下
    2014-03-03
  • 微信小程序?qū)崙?zhàn)之打卡時(shí)鐘的繪制

    微信小程序?qū)崙?zhàn)之打卡時(shí)鐘的繪制

    這篇文章主要介紹了如何利用微信小程序制作一個(gè)打卡時(shí)鐘,分為工作和休息兩種狀態(tài),用戶可以設(shè)置相應(yīng)的時(shí)間,所有的時(shí)鐘記錄都會(huì)被保存下來,感興趣的可以了解一下
    2022-04-04

最新評(píng)論

那坡县| 青铜峡市| 临城县| 扎兰屯市| 卢氏县| 图木舒克市| 黔西| 长乐市| 望江县| 灌南县| 和龙市| 崇明县| 沙湾县| 交口县| 陇川县| 惠来县| 济阳县| 永新县| 大名县| 临夏县| 大港区| 潜江市| 宁津县| 常山县| 米泉市| 琼海市| 呼伦贝尔市| 贞丰县| 赤峰市| 建始县| 扎囊县| 辉南县| 铅山县| 罗平县| 本溪市| 井冈山市| 玉门市| 东兰县| 开远市| 繁峙县| 蒙城县|