互动媒体技术——基于p5.js创作一幅自画像
文章目录
- 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创作一幅自画像相关推荐
- 互动媒体技术——基于p5.js实现动态图形临摹与拓展:炫彩光影的千变万化!
博文索引目录: 1. 引言 2. 临摹结果对比 3. 临摹过程 3.1 准备工作 3.2 原图规律--语言描述 3.3 原图规律--数学与代码描述 3.4 完整代码 4. 创意拓展 4.1 拓展一-- ...
- 互动媒体技术-用p5.js临摹动态图片
1,临摹图片 2,图像运动规律 原图中一共有36个等大的四分之三圆形,按照一定的规律转动,可以等效为圆形不动,每个圆上有以其半径为边长的矩形在绕圆形的原点转动,每四个为一组,其他部分都是在重复这四个的 ...
- 互动媒体技术——基于processing实现随机行为及牛顿运动学:自然这么美,带你去看看!
博文索引目录: 1. 引言 2. 作品 2.1 第0章(引言)-- 我对我的梦有种迷恋,就像这漫天星的夜 2.2 第1章(向量)-- 心如止水,却为叶所动 2.3 第2章(力)-- 樱花飘来的方向,大 ...
- # 互动媒体期末作业——P5.js“画板”
前言 之前的推文就曾说过对于画画简直是一窍不通,然而最近的大作业最后还是需要做一个与画画有关的内容--画板.不过,还好,最后并不是要我再画,而且就算是画,也不需要动手画,所以这对我来说,还是可以接受的 ...
- “码绘” —— 使用P5.JS制作一幅自画像
关于自画像,我认为最重要的是要把"我"这个人的特点表现出来. 于是,我的基本想法: 1.是一个长发齐肩的女生,有着中分的刘海 2.是一个追星少女 关于第一点还是比较好实现的,就是外 ...
- p5.js创意绘图(2)自画像
利用p5.js画一幅自画像,效果如下: 1.按下键盘"M"(music)键,音乐停止播放:再次按下"M"键,音乐重新开始播放. 2.按下键盘"S&qu ...
- p5.js 编程临摹动态图形(互动媒体技术作业)
p5.js 编程临摹动态图形(互动媒体技术作业) 动态图形的规律分析 p5.js 代码历程 走过的弯路 拓展 总结 动态图形的规律分析 从老师的动态图形参考资料中,我选择了以下图形进行临摹: 初次见面 ...
- p5.js 绘制创意自画像(互动媒体技术作业)
p5.js 绘制创意自画像Little Prince(互动媒体技术作业) 作品展示 代码&创意点分析 1.设置工具类以获取坐标点:本次实验最有用的东西就是这个了 2.眼睛跟随鼠标运动: 3.披 ...
- 互动媒体技术十二个“一”的文艺创作——小说创作
互动媒体技术十二个"一"的文艺创作--小说创作 <玻璃>节选 俞城(男一号):学生,21岁.性格极具特色,表面倔强,但是经历过不为人知的故事.祖籍北京,地球上只剩下了爷 ...
最新文章
- Jenkins怎么启动和停止服务
- mysql as_mysql AS子句
- 并发编程——进程——生产者消费者模型
- Angular NgModule providers字段维护了多个字段后的初始化实现
- SAP Spartacus OccEndpointsService getUrl方法的实现原理
- 初识jQuery(适合初学者哟.........)
- pycharm提示your evalluation license has expired解决方法
- (转)API SOCKET基础(一) TCP建立连接并通信
- c语言statistics函数,Logistic回归中C-Statistics计算方法
- 助力南京打造创新名城 第三届未来网络发展大会将召开
- ettercap dns_spoof
- Android移动应用基础教程 【程序活动单元Activity】
- [原创]关于comsenz 公司 系列论坛类型开源网站搭建的心得
- Android: 例如用户模块 保持登录后数据实时同步改变
- 新公司入职 从零开始搭建环境
- 【错误记录】编译 Linux 内核报错 ( Unable to find the ncurses package. )
- 粒子群优化能做相机标定吗
- 出走海报,立体感搞出来
- Android端控制LED屏
- 电脑android模拟器下载地址,菜鸡电脑版怎么下载 安卓模拟器电脑版下载地址
热门文章
- 变参函数相关介绍和封装
- 2018 Android中高级面试题
- java中常用的工具类(二)FtpUtil, 汉字转拼音,zip工具类,CollectionUtil,MathUtil,
- 零入门看懂建筑图纸_社区建筑入门
- CGI提交表单的两种方式POST与GET
- zabbix监测redis连接数
- 26岁离开国企,身背巨债,凭着满腔热血,涅槃重生
- 携程网移动端首页制作(html5+css3)
- windons怎么查看端口号被哪个程序占用
- 我国计算机软件著作权登记的性质是,我国计算机软件著作权登记机制的反思与完善.PDF...