创意编程——卡通自画像设计
成果展示
图像分析:
整体图像分为两部分——背景和人物;
背景部分为动态,整体为粉色以及向上升起的白色泡泡。
任务部分为卡通自画像设计
PART1:背景部分代码分析
泡泡初始化:
var bubbleArray = [];
var c1, c2;
function Bubble(xloc, yloc, zloc, rise, rad)
{
this.xloc = xloc;
this.yloc = yloc;
this.zloc = zloc;
this.rad = rad;
this.rise = rise;
}
function CreateBubbles(howManyBubbles) {
var count = howManyBubbles;
for (i = 0; i < count; i++) {
var x = random(0, 640);
var y = random(0, 480);
var z = random(0.3, 0.7);
var r = map(z, 0.3, 0.7, 7, 25);
var rise = map(z, 0.3, 0.7, 0.7, 1.7);
var b = new Bubble(x, y, z, rise, r);
bubbleArray.push(b);
}
}
泡泡出现上升
function Show()
{
for (i = 0; i < bubbleArray.length; i++)
{
var x = bubbleArray[i].xloc;
var y = bubbleArray[i].yloc;
var z = bubbleArray[i].zloc;
var r = bubbleArray[i].rad;
fill(255, 255, 255, z);
ellipse(x, y, r, r);
}
}
function Rise()
{
for (i = 0; i < bubbleArray.length; i++)
{
var x = bubbleArray[i].rise;
bubbleArray[i].yloc -= x;
var zmin = bubbleArray[i].zloc * -1.5;
var zmax = bubbleArray[i].zloc * 1.5;
var slowy = bubbleArray[i].yloc * .08;
bubbleArray[i].xloc += map(cos(slowy), -1, 1, zmin, zmax)
}
}
function Edges() {
for (i = 0; i < bubbleArray.length; i++) {
if (bubbleArray[i].yloc < -10) {
bubbleArray[i].yloc = 480 + 20;
bubbleArray