欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

p5.js臨摹動(dòng)態(tài)圖形的方法

 更新時(shí)間:2019年10月23日 11:46:49   作者:覆盆子酸奶  
這篇文章主要為大家詳細(xì)介紹了p5.js臨摹動(dòng)態(tài)圖形的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了p5.js臨摹動(dòng)態(tài)圖形的具體代碼,供大家參考,具體內(nèi)容如下

一、描述所臨摹圖像的規(guī)律

1、圖像由多個(gè)閃光圓點(diǎn)和圓點(diǎn)之間的連線組成
2、圓點(diǎn)的運(yùn)動(dòng)軌跡是隨機(jī)的
3、圓點(diǎn)之間靠近時(shí)會(huì)產(chǎn)生連線,并且相互靠近的圓點(diǎn)會(huì)顏色加深

二、代碼實(shí)現(xiàn)

圓點(diǎn)之間產(chǎn)生連線,隨機(jī)生成線條和運(yùn)動(dòng)軌跡:

//隨機(jī)生成s.n條線位置信息
for (var t = [], p = 0; s.n > p; p++) {
  var h = random() * r, //隨機(jī)位置
   g = random() * n,
   q = 2 * random() - 1, //隨機(jī)運(yùn)動(dòng)方向
   d = 2 * random() - 1;
  t.push({
   x: h,
   y: g,
   xa: q,
   ya: d,
   max: 6000 //圓點(diǎn)靠近產(chǎn)生線條的距離
  })
 }

繪制閃光圓點(diǎn):

//由三個(gè)透明度不同的圓組成
 context.beginPath();
 context.arc(r.x,r.y,1.7,0*Math.PI,2*Math.PI);
 context.fillStyle="#FF1493";
 context.fill();
   
 context.beginPath();
 context.arc(r.x,r.y,6,0*Math.PI,2*Math.PI);
 context.fillStyle='rgba(255,20,147,0.3)';
 context.fill();
   
 context.beginPath();
 context.arc(r.x,r.y,10,0*Math.PI,2*Math.PI);
 context.fillStyle='rgba(255,20,147,0.1)';
 context.fill();

效果圖

因?yàn)閷?duì)于臨摹動(dòng)態(tài)圖像仍有很多困惑的地方,無法實(shí)現(xiàn)多個(gè)圓點(diǎn)相互靠近顏色加深,非常遺憾最終不能臨摹出完全一樣的圖像。

三、拓展

增加交互性,使得線條能夠附著到鼠標(biāo)上,跟隨鼠標(biāo)移動(dòng)。
鼠標(biāo)靠近圓點(diǎn)時(shí),圓點(diǎn)會(huì)加速運(yùn)動(dòng),

//存儲(chǔ)鼠標(biāo)位置,離開的時(shí)候,釋放當(dāng)前位置信息
window.onmousemove = function(i) {
  i = i || window.event, f.x = i.clientX, f.y = i.clientY
 },
window.onmouseout = function() {
  f.x = null, f.y = null
 };

for (v = 0; v < w.length; v++) {//從下一個(gè)點(diǎn)開始
    x = w[v];
    if (i !== x && null !== x.x && null !== x.y) {
     B = i.x - x.x, z = i.y - x.y, y = B * B + z * z;
     //與鼠標(biāo)靠近到一定距離的時(shí)候圓點(diǎn)加速(x.max/2<y<x.max)
     y < x.max && (x == current_point && y >= x.max / 2 
      && (i.x -= 0.03 * B, i.y -= 0.03 * z), 
     ...
     )}

結(jié)果圖

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Javascript之面向?qū)ο?-方法

    Javascript之面向?qū)ο?-方法

    本篇文章主要介紹了Javascript的面向?qū)ο螅瑢?duì)對(duì)象方法的調(diào)用、私有方法、靜態(tài)方法、公有方法、特權(quán)方法進(jìn)行了一一介紹,需要的朋友可以看下
    2016-12-12
  • JavaScript打字小游戲代碼

    JavaScript打字小游戲代碼

    上半年自學(xué)了JavaScript,然后就做了個(gè)打字小游戲玩玩
    2011-12-12
  • JavaScript設(shè)計(jì)模式之策略模式實(shí)例

    JavaScript設(shè)計(jì)模式之策略模式實(shí)例

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式之策略模式實(shí)例,本文分析了Jquery源碼并給出了自己的實(shí)現(xiàn),需要的朋友可以參考下
    2014-10-10
  • JavaScript閉包的簡(jiǎn)單應(yīng)用

    JavaScript閉包的簡(jiǎn)單應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了JavaScript閉包的簡(jiǎn)單應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • BootStrap中Table分頁(yè)插件使用詳解

    BootStrap中Table分頁(yè)插件使用詳解

    bootstrap-table 是一個(gè)輕量級(jí)的table插件,使用AJAX獲取JSON格式的數(shù)據(jù),其分頁(yè)和數(shù)據(jù)填充很方便,支持國(guó)際化。這篇文章介紹了bootstrap中table分頁(yè)插件的使用,感興趣的朋友一起看看吧
    2016-10-10
  • 給Flash加一個(gè)超鏈接(推薦使用透明層)兼容主流瀏覽器

    給Flash加一個(gè)超鏈接(推薦使用透明層)兼容主流瀏覽器

    給一個(gè)Flash加一個(gè)超鏈接,原想直接在object外直接套一個(gè)超鏈接即可,試了之后卻發(fā)現(xiàn)不是這么回事
    2013-06-06
  • js css+html實(shí)現(xiàn)簡(jiǎn)單的日歷

    js css+html實(shí)現(xiàn)簡(jiǎn)單的日歷

    這篇文章主要為大家詳細(xì)介紹了由html、css、javascript結(jié)合實(shí)現(xiàn)的簡(jiǎn)單日歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 手把手教你如何排查Javascript內(nèi)存泄漏

    手把手教你如何排查Javascript內(nèi)存泄漏

    本文將通過一些常見的FAQ來帶大家一起學(xué)習(xí)一下怎么用工具定位javascript里的內(nèi)存問題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-06-06
  • JavaScript仿微博發(fā)布信息案例

    JavaScript仿微博發(fā)布信息案例

    這篇文章主要為大家詳細(xì)介紹了JavaScript仿微博發(fā)布信息案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Js實(shí)現(xiàn)網(wǎng)頁(yè)鍵盤控制翻頁(yè)的方法

    Js實(shí)現(xiàn)網(wǎng)頁(yè)鍵盤控制翻頁(yè)的方法

    這篇文章主要介紹了Js實(shí)現(xiàn)網(wǎng)頁(yè)鍵盤控制翻頁(yè)的方法,較為詳細(xì)的分析了Js實(shí)現(xiàn)網(wǎng)頁(yè)鍵盤控制翻頁(yè)的原理與具體實(shí)現(xiàn)方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10

最新評(píng)論