文章目录

  • 1.实验主题
  • 2.实验要求
  • 3.实验结果
  • 4.实验步骤
  • 总结

1.实验主题

基于p5.js创作一幅自画像。

2.实验要求

编程语言与工具:编程可以用p5,processing,若想用其他语言或工具,提前向老师说明情况;
作品: 一件编程创意作品,必须实现动态效果或交互效果;作品录制一段一分钟内的视频;作品可以是具象化地描绘自己的形象,也可以是任何形式表现自己的兴趣、追求、特色、经历等;报告:写一篇文章,发表为博文/推文等形式,描述运用的规律,若用到了数学/物理/化学等学科中的知识,要用平实易懂的语言介绍原理,尝试运用凝练的数学语言表达(公式、方程、推导等),特别要描述出这些原理如何在作品中呈现的。

3.实验结果

4.实验步骤

头像是通过各种形状拼接而成的,有半圆和椭圆(使用arc函数实现),三角形(使用triangle函数实现),还有各种曲线,就是不断调试位置,并进行旋转,平移,放置到自己想要的位置,没有什么技术性,主要花费的还是时间。动态的背景是通过两个rect函数实现的,看起来运动方向是斜向下的,其实是一个向下的矩形和一个向右的矩形组成的,也可以修改参数,实现方向的变换,具体实现可以参见代码,代码中各个部分都有注释标注。

function setup() {createCanvas(500, 500);
}function draw() {background(155,255,255);var time = millis() / 10;drawBackground(time);scale(1.2);translate(-100, 25);drawHead();
}//画头
function drawHead()
{//头stroke(139, 69, 19);strokeWeight(3);fill(205, 102, 29);ellipse(310, 150, 150, 175);//脸的轮廓stroke(205, 104, 57);strokeWeight(8);noFill();push();translate(273, 232);rotate(PI / 9);ellipse(0, 0, 100, 35);pop();strokeWeight(14);line(210, 160, 232, 225);//脸fill(255, 231, 186);noStroke();push();translate(210, 150);rotate(-PI / 15);rect(0, 0, 140, 90, 0, 10, 15, 20);pop();push();translate(330, 216);rotate(-PI / 4);ellipse(0, 0, 90, 50);pop();push();translate(273, 232);rotate(PI / 9);ellipse(0, 0, 100, 35);pop();stroke(205, 104, 57);strokeWeight(4);curve(360, 190, 360, 220, 315, 256, 315, 226);//耳朵fill(255, 231, 186);stroke(238, 149, 114);strokeWeight(4);push();translate(365, 145);rotate(-PI / 3);ellipse(0, 0, 50, 40);pop();push();noStroke();arc(357, 150, 40, 40, PI / 2, +PI + PI / 2);pop();noFill();arc(360, 135, 20, 40, 0, HALF_PI);arc(379, 147, 20, 20, PI, PI + PI / 2);//头发push();fill(205, 102, 29);stroke(139, 69, 19);strokeWeight(3);triangle(210, 170, 200, 150, 240, 130);triangle(240, 170, 222, 130, 270, 120);triangle(270, 175, 256, 120, 300, 100);triangle(300, 163, 275, 80, 320, 80);triangle(320, 160, 305, 100, 340, 100);triangle(350, 150, 326, 100, 373, 105);pop();push();fill(205, 102, 29);stroke(139, 69, 19);strokeWeight(3);translate(2, 70);rotate(-PI / 12);arc(260, 130, 178, 150, PI, 0);pop();//左眼noStroke();fill(255, 255, 255);push();translate(241, 185);rotate(PI / 12);ellipse(0, 0, 40, 28);pop();noFill();stroke(139, 71, 38);strokeWeight(5);curve(280, 340, 260, 190, 220, 175, 220, 175);strokeWeight(3);curve(350, 70, 260, 190, 222, 175, 230, 60);fill(160, 82, 45);circle(242, 183, 15);noStroke();fill(255);circle(245, 181, 6);//右眼noStroke();fill(255, 255, 255);push();translate(310, 175);rotate(-PI / 8);ellipse(0, 0, 40, 28);pop();noFill();stroke(139, 71, 38);strokeWeight(5);curve(240, 380, 288, 185, 328, 165, 325, 165);strokeWeight(3);curve(210, 80, 290, 185, 326, 165, 260, 90);fill(160, 82, 45);circle(310, 172, 15);noStroke();fill(255);circle(313, 170, 6);//鼻子push();stroke(238, 149, 114);noFill();strokeWeight(5);curve(300, 280, 267, 215, 287, 205, 300, 250);stroke(139, 71, 38);strokeWeight(2);curve(300, 280, 267, 215, 287, 205, 300, 250);pop();//嘴巴stroke(238, 149, 114);noFill();strokeWeight(5);curve(180, 100, 270, 235, 310, 230, 200, 280);stroke(139, 71, 38);strokeWeight(2);curve(180, 100, 270, 235, 310, 230, 200, 280);
}//动态背景
function drawBackground(time) {push();fill(100, 230, 150);noStroke(); for(var i=0; i<11; i++){rect(0,(time-i*100)%500,500,50);rect((time-i*100)%500,0,50,500);}pop();
}

总结

码绘比起手绘真的要难好多,在构建图形上时,要不断进行试验,来确定具体的位置,单纯时间上的花费就要很多。

互动媒体技术——基于p5.js创作一幅自画像相关推荐

  1. 互动媒体技术——基于p5.js实现动态图形临摹与拓展:炫彩光影的千变万化!

    博文索引目录: 1. 引言 2. 临摹结果对比 3. 临摹过程 3.1 准备工作 3.2 原图规律--语言描述 3.3 原图规律--数学与代码描述 3.4 完整代码 4. 创意拓展 4.1 拓展一-- ...

  2. 互动媒体技术-用p5.js临摹动态图片

    1,临摹图片 2,图像运动规律 原图中一共有36个等大的四分之三圆形,按照一定的规律转动,可以等效为圆形不动,每个圆上有以其半径为边长的矩形在绕圆形的原点转动,每四个为一组,其他部分都是在重复这四个的 ...

  3. 互动媒体技术——基于processing实现随机行为及牛顿运动学:自然这么美,带你去看看!

    博文索引目录: 1. 引言 2. 作品 2.1 第0章(引言)-- 我对我的梦有种迷恋,就像这漫天星的夜 2.2 第1章(向量)-- 心如止水,却为叶所动 2.3 第2章(力)-- 樱花飘来的方向,大 ...

  4. # 互动媒体期末作业——P5.js“画板”

    前言 之前的推文就曾说过对于画画简直是一窍不通,然而最近的大作业最后还是需要做一个与画画有关的内容--画板.不过,还好,最后并不是要我再画,而且就算是画,也不需要动手画,所以这对我来说,还是可以接受的 ...

  5. “码绘” —— 使用P5.JS制作一幅自画像

    关于自画像,我认为最重要的是要把"我"这个人的特点表现出来. 于是,我的基本想法: 1.是一个长发齐肩的女生,有着中分的刘海 2.是一个追星少女 关于第一点还是比较好实现的,就是外 ...

  6. p5.js创意绘图(2)自画像

    利用p5.js画一幅自画像,效果如下: 1.按下键盘"M"(music)键,音乐停止播放:再次按下"M"键,音乐重新开始播放. 2.按下键盘"S&qu ...

  7. p5.js 编程临摹动态图形(互动媒体技术作业)

    p5.js 编程临摹动态图形(互动媒体技术作业) 动态图形的规律分析 p5.js 代码历程 走过的弯路 拓展 总结 动态图形的规律分析 从老师的动态图形参考资料中,我选择了以下图形进行临摹: 初次见面 ...

  8. p5.js 绘制创意自画像(互动媒体技术作业)

    p5.js 绘制创意自画像Little Prince(互动媒体技术作业) 作品展示 代码&创意点分析 1.设置工具类以获取坐标点:本次实验最有用的东西就是这个了 2.眼睛跟随鼠标运动: 3.披 ...

  9. 互动媒体技术十二个“一”的文艺创作——小说创作

    互动媒体技术十二个"一"的文艺创作--小说创作 <玻璃>节选 俞城(男一号):学生,21岁.性格极具特色,表面倔强,但是经历过不为人知的故事.祖籍北京,地球上只剩下了爷 ...

最新文章

  1. Jenkins怎么启动和停止服务
  2. mysql as_mysql AS子句
  3. 并发编程——进程——生产者消费者模型
  4. Angular NgModule providers字段维护了多个字段后的初始化实现
  5. SAP Spartacus OccEndpointsService getUrl方法的实现原理
  6. 初识jQuery(适合初学者哟.........)
  7. pycharm提示your evalluation license has expired解决方法
  8. (转)API SOCKET基础(一) TCP建立连接并通信
  9. c语言statistics函数,Logistic回归中C-Statistics计算方法
  10. 助力南京打造创新名城 第三届未来网络发展大会将召开
  11. ettercap dns_spoof
  12. Android移动应用基础教程 【程序活动单元Activity】
  13. [原创]关于comsenz 公司 系列论坛类型开源网站搭建的心得
  14. Android: 例如用户模块 保持登录后数据实时同步改变
  15. 新公司入职 从零开始搭建环境
  16. 【错误记录】编译 Linux 内核报错 ( Unable to find the ncurses package. )
  17. 粒子群优化能做相机标定吗
  18. 出走海报,立体感搞出来
  19. Android端控制LED屏
  20. 电脑android模拟器下载地址,菜鸡电脑版怎么下载 安卓模拟器电脑版下载地址

热门文章

  1. 变参函数相关介绍和封装
  2. 2018 Android中高级面试题
  3. java中常用的工具类(二)FtpUtil, 汉字转拼音,zip工具类,CollectionUtil,MathUtil,
  4. 零入门看懂建筑图纸_社区建筑入门
  5. CGI提交表单的两种方式POST与GET
  6. zabbix监测redis连接数
  7. 26岁离开国企,身背巨债,凭着满腔热血,涅槃重生
  8. 携程网移动端首页制作(html5+css3)
  9. windons怎么查看端口号被哪个程序占用
  10. 我国计算机软件著作权登记的性质是,我国计算机软件著作权登记机制的反思与完善.PDF...