溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用p5.js臨摹動態圖形

發布時間:2021-05-20 18:06:17 來源:億速云 閱讀:199 作者:Leah 欄目:web開發

這篇文章給大家介紹如何使用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();

效果圖

如何使用p5.js臨摹動態圖形

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

三、拓展

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

//存儲鼠標位置,離開的時候,釋放當前位置信息
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), 
     ...
     )}

關于如何使用p5.js臨摹動態圖形就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女