iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
Modern Web

P5.js 學習之路系列 第 12

Day12 - 實作範例 - 用p5.js製作第一個pattern - 2

  • 分享至 

  • xImage
  •  

昨天我們講到了利用迴圈製作有規則的波普小作品,今天我們要來加入隨機值操作看看,用昨天的程式來稍微改造一下

  1. 首先設定的部分我想大家應該都沒有什麼問題,把noStroke(),noLoop() 等等設定好
  2. 另外我使用了兩個從配色網站上取出的色列
  3. 把底色的彩色點點圖用一個function()包起來
  4. 在畫點點的時候,可以隨機上色
  5. 點點的距離可以用noise來營造出不規律中帶有一點規律的隨機感
  6. 在draw()裡面大家可以放上自己歡的形狀喔
let nn = 0
let bb  = 0

let palette2 = ["#2E294E", "#541388", "#F1E9DA", "#FFD400", "#D90368"];
let palette = ["#3AC3FD", "#2988B1", "#FD3AA3", "#B12972", "#FDE33A"];

function setup() {
  createCanvas(windowWidth, windowHeight);
  colorMode(HSB);
  noStroke()
  noLoop()

  start()

}


function draw() {
  colorMode(RGB);
  
  
  let cc = color(255,215,0)
  cc.setAlpha(200);
	fill(cc)
  push()
  rotate(-0.25);
	rect(1150, 180, 800, 550)
  pop()

  let CCCC = color('#292a73')
  CCCC.setAlpha(170);
	fill(CCCC)
  triangle(640, 440 ,1200, 1000, 180, 600)

}


function start(){
	//用同一章畫布
  for (let k = 0; k < width; k+=20) {

    bb += k/10;
    for(let i = 0; i< width ; i+=10) {

      let colorBall = parseInt( random(0, 5))
      fill(palette[colorBall])

      let noiseTemp = noise(0.03 * i, 0.03 * i)
      let noiseTemp2 = noise(0.04 * i, 0.05 * i)
      let newX = map(noiseTemp,0,1, 0 ,width)
      let newY = map(noiseTemp2,0,1, 0 , height)
      ellipse( newX , newY - bb , k/random(20, 40)) //上半部
      ellipse( newX , newY + bb , k/random(20, 40)) //上半部

    }
  }
  
}

小結

身為排版苦手的我,覺得上層上什麼都不對,最後只好自暴自棄隨意地放了兩個幾何,大家有覺得好看的排版可以在跟我分享一下XD


上一篇
Day11 - 實作範例 - 用p5.js製作第一個pattern
下一篇
Day13 - preload - 文字變化
系列文
P5.js 學習之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言