Hahow课程

Day 1

function setupfucntion draw 的区别:setup在一开始设定绘制好,draw会不停的绘制。

Day 2

Nothing much. 下载vscode并安装liveserver插件,可以快速用网页运行代码。

Day 3

使用frameCount让圆形自动绘制:
ellipse(width / 2, height / 2, 400, 50 + frameCount*10)
结合fill使用,可以产生颜色自动变化的效果:
noFill()
fill(frameCount) 从黑色变成白色

在绘制rect时,默认以左上角的点为基准,跟ellipse不一样,此时可以使用 rectMode(center) 来修改

  1. ellipse(width/2, height/2, 50)
  2. rectMode(CENTER)
  3. strokeWeight(frameCount % 2 ==0?5:1)
  4. stroke(mouseX)
  5. rect(width/2, height/2, 100+frameCount*5)

image.png

  1. fill(mouseX, mouseY, 50)
  2. stroke("white")
  3. triangle(440+mouseX/2, 140, 160+frameCount, mouseX, 40, 160)

image.png
(跳过绘制海星)

变数与数据–赋予可变与连续性

sketch3.js

Day 5

需要变数的原因

  • 减少重复
  • 暂存手表需要的数据
  • 做复杂的运算时结构概念
  • 留下上一刻的状态
  • 赋予数值与数据意义

Day 6

  1. function setup() {
  2. createCanvas(windowWidth, windowHeight);
  3. background(100);
  4. }
  5. var r = 0
  6. function draw() {
  7. r = mouseX/2
  8. ellipse(width/2, height/3, r, r)
  9. ellipse(width/2, height/2, r, r)
  10. ellipse(width/2, height/6, r, r)
  11. }

image.png
也可以设置brightness变量,控制颜色的深浅:

  1. function setup() {
  2. createCanvas(windowWidth, windowHeight);
  3. background(100);
  4. }
  5. var r = 0
  6. function draw() {
  7. r = mouseX/2
  8. var brightness = r/2 +40
  9. fill(brightness)
  10. ellipse(width/2, height/3, r, r)
  11. ellipse(width/2, height/2, r, r)
  12. ellipse(width/2, height/6, r, r)
  13. }

或是var三个变量,依次放入fill里面,可以改变rgb颜色。

绘制自由落体反弹效果的圆形:

  1. var r = 0
  2. var x = 50, y = 50
  3. var vx = 3, vy = 3
  4. function draw() {
  5. // background(0)
  6. ellipse(x, y, 50)
  7. x = x + vx
  8. y = y + vy
  9. vy += 0.2
  10. if (y > height) {
  11. vy = -vy * 0.6 //让反弹力道降低
  12. y = height //反弹时,避免马上归零
  13. }
  14. }

image.png

Day 7

加入 txt 变量,里面包含了字符串:

  1. var r = 0
  2. var x = 50, y = 50
  3. var vx = 3, vy = 3
  4. var txt = "Hello"
  5. function draw() {
  6. // background(0)
  7. ellipse(x, y, 50)
  8. text(txt, x+100, y)
  9. txt += "."
  10. x = x + vx
  11. y = y + vy
  12. vy += 0.2
  13. if (y > height) {
  14. vy = -vy * 0.6
  15. y = height
  16. }

image.png

Day 8

继续联系if else语句

  1. if (mouseIsPressed){
  2. fill('red')
  3. } else {
  4. fill("yellow")
  5. }

image.png
sketch4.js

Day 9

换成绘制长方形,设定变量并使用+=来重复绘制

  1. function setup() {
  2. createCanvas(windowWidth, windowHeight)
  3. background(100)
  4. }
  5. var x = 10
  6. function draw() {
  7. rect(x, 10, 50, 20)
  8. x += 50 + 10
  9. }

image.png

Day 10

加入y变量,影响绘制结果

  1. var x = 10, y = 10
  2. function draw() {
  3. rect(x, y, 50, 20)
  4. x += 50 + 10
  5. if (x>width){
  6. x=0
  7. y+=30
  8. }
  9. }

image.png

Day 11

加入随机变量,以产生宽度不一致的效果

  1. var x = 10, y = 10
  2. function draw() {
  3. var w = random(30,80)
  4. rect(x, y, w, 20)
  5. x += w + 10
  6. if (x>width){
  7. x=0
  8. y+=30
  9. }
  10. }

image.png

Day 12

在原先的基础上将变量加入颜色

  1. var x = 10, y = 10
  2. function draw() {
  3. var w = random(30,80)
  4. fill(100 + random(155), 59, 59)
  5. rect(x, y, w, 20)
  6. x += w + 10
  7. if (x>width){
  8. x=0
  9. y+=30
  10. }
  11. }

image.png