p5.js臨摹動態圖形的方法

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

本文實例為大家分享了p5.js臨摹動態圖形的具體代碼,供大家參考,具體內容如下

一、描述所臨摹圖像的規律

1、圖像由多個閃光圓點和圓點之間的連線組成
2、圓點的運動軌跡是隨機的
3、圓點之間靠近時會產生連線,并且相互靠近的圓點會顏色加深

二、代碼實現

圓點之間產生連線,隨機生成線條和運動軌跡:

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

繪制閃光圓點:

//由三個透明度不同的圓組成
 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();

效果圖

因為對于臨摹動態圖像仍有很多困惑的地方,無法實現多個圓點相互靠近顏色加深,非常遺憾最終不能臨摹出完全一樣的圖像。

三、拓展

增加交互性,使得線條能夠附著到鼠標上,跟隨鼠標移動。
鼠標靠近圓點時,圓點會加速運動,

//存儲鼠標位置,離開的時候,釋放當前位置信息
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++) {//從下一個點開始
    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;
     //與鼠標靠近到一定距離的時候圓點加速(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), 
     ...
     )}

結果圖

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

2019开奖结果