200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 互动媒体创意编程——自画像

互动媒体创意编程——自画像

时间:2022-01-17 09:35:20

相关推荐

互动媒体创意编程——自画像

使用p5.js官方Web Editor上手编程

首先接到这个作业的时候,我是很崩溃的,我认为自己没有什么特点,太难表现,于是先画了个实验草图

实验草图:

完成效果如图:

以下为我认为的我的实验亮点:

1.设置工具类以获取坐标点

实时获取坐标方便编程

function tools(){for(var i=10;i<500;i=i+10){stroke(250,170,240,100);line(0,i,500,i);line(i,0,i,500);}fill(0,0,0);text(mouseY,mouseX+25,mouseY);text(mouseX,mouseX,mouseY);}

2.眼睛跟随鼠标运动:

设置两个个delta变量关联MouseX和MouseYfunction moveeyes(){var deltax=(mouseX-250)/250*7.5;var deltay=(mouseY-150)/350*7.5;fill(255);//眼睛circle(215,150,35);circle(285,150,35);fill(0);circle(215+deltax,150+deltay,20);circle(285+deltax,150+deltay,20);}

3.背景流星:

绘制动态星星

function stars(){var cycle =millis()/5;fill(254,231,138);circle(cycle%500,cycle%500,20);circle((cycle-100)%500+200,(cycle-100)%500,20);circle((cycle-200)%500,(cycle-100)%500+100,10);circle((cycle-50)%500,(cycle-100)%500+100,12);circle((cycle-200)%500+50,(cycle-200)%500,20);circle((cycle-300)%500+150,(cycle-100)%500+100,20);circle((cycle-300)%500+150,(cycle-400)%500+100,15);circle((cycle-300)%500+150,(cycle-400)%500,20);circle((cycle-400)%500+250,(cycle-350)%500+50,20);circle((cycle-400)%500+50,(cycle-350)%500+50,5);circle((cycle-300)%500+0,(cycle-400)%500+400,20);circle((cycle-100)%500,(cycle-400)%500+100,20);circle((cycle-100)%500+150,(cycle-400)%500+100,10);circle((cycle-300)%500+150,(cycle-450)%500+100,5);circle((cycle-50)%500+150,(cycle-450)%500+100,5);circle((cycle-450)%500+450,(cycle-450)%500+300,15);}

以下为全部代码`function setup() {

createCanvas(500, 500);

rectMode(CENTER);

}

function draw() {

noStroke();

background(16,30,70);

stars();

drawme();

//tools();

}

function drawme(){

fill(0);//脚

circle(220,450,45);

circle(280,450,45);

fill(106,141,181);

rect(220,400,40,100);

rect(280,400,40,100);

fill(253,221,200);//手

circle(125,260,40);

circle(375,260,40);

fill(124,74,173);

rect(160,260,60,40);

rect(340,260,60,40);

fill(0,0,0);//身体

quad(190,240,310,240,330,390,170,390);

fill(255,221,202);//头

circle(250,160,160);

rect(250,130,160,100,40);

circle(175,150,30)//耳朵

circle(325,150,30)

fill(255,23,140);//围巾

rect(250,230,100,20);

circle(200,230,20);

circle(300,230,20);

moveeyes();//移动的眼睛

stroke(0);

noFill(); //眉毛

arc(215,130,30,10,PI,0);

arc(285,130,30,10,PI,0);

noStroke();

circle(250,175,5);

fill(209,51,26);

ellipse(250,200,40,20);//嘴巴

fill(90,54,22);头发

triangle(170,150,165,120,190,120);

triangle(180,130,210,120,210,100)

triangle(190,150,220,120,220,110);

triangle(330,160,335,120,300,120);

triangle(310,150,290,120,300,100);

fill(23,18,12);

quad(160,100,340,100,340,120,160,120);//帽子

//rect(250,100,160,60,40);

quad(165,100,210,50,290,50,335,100);

circle(160,110,20);

circle(340,110,20);

}

///绘制交互动态眼睛,朝向鼠标位置

function moveeyes(){

var deltax=(mouseX-250)/2507.5;

var deltay=(mouseY-150)/3507.5;

fill(255); //眼睛

circle(215,150,35);

circle(285,150,35);

fill(0);

circle(215+deltax,150+deltay,20);

circle(285+deltax,150+deltay,20);

}

///绘制动态星星

function stars(){

var cycle =millis()/5;

fill(254,231,138);

circle(cycle%500,cycle%500,20);

circle((cycle-100)%500+200,(cycle-100)%500,20);

circle((cycle-200)%500,(cycle-100)%500+100,10);

circle((cycle-50)%500,(cycle-100)%500+100,12);

circle((cycle-200)%500+50,(cycle-200)%500,20);

circle((cycle-300)%500+150,(cycle-100)%500+100,20);

circle((cycle-300)%500+150,(cycle-400)%500+100,15);

circle((cycle-300)%500+150,(cycle-400)%500,20);

circle((cycle-400)%500+250,(cycle-350)%500+50,20);

circle((cycle-400)%500+50,(cycle-350)%500+50,5);

circle((cycle-300)%500+0,(cycle-400)%500+400,20);

circle((cycle-100)%500,(cycle-400)%500+100,20);

circle((cycle-100)%500+150,(cycle-400)%500+100,10);

circle((cycle-300)%500+150,(cycle-450)%500+100,5);

circle((cycle-50)%500+150,(cycle-450)%500+100,5);

circle((cycle-450)%500+450,(cycle-450)%500+300,15);

}`

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。