您的位置:首页 > 其它

互动媒体技术作业——processing码绘

2020-01-12 15:35 141 查看

互动媒体技术作业——processing码绘

一、作品临摹

1.要求: 从参考资料中的“动态图形艺术”中选取不少于1幅作品,用编程方式临摹,并进行拓展
编程语言与工具:编程可以用p5,processing,若想用其他语言或工具,提前向老师说明情况;

作品: 要有一件临摹的作品;还要有至少一件拓展的作品;每幅作品录制一段半分钟内的视频;

报告:写一篇文章,发表为博文/推文等形式,描述从原作中提炼出的规律,既要用平实易懂的语言描述,也要尝试运用凝练的数学语言表达(公式、方程、推导等),特别要描述出这些规律在原作中如何呈现的?在自己的扩展中如何呈现和变化的?

**2.**所选作品

3.分析

3.1 规律分析:该作品布局类似棋盘,奇数列以白黑间隔方式布局,偶数列则以黑白间隔布局。作品粗看是匀速运动,实则按照正弦曲线规律运动。整体可看作黑色方块的有序缩放。

3.2 代码实现
绘制方块

for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(i%2==0){
if(j%2==1){
fill(0);
rect(25+50*i,25+50*j,50,50)

}
else{fill(255);
rect(25+50*i,25+50*j,50,50);

}
}
else {if(j%2==0){fill(0);
rect(25+50*i,25+50*j,50,50);
}
else{fill(255);
rect(25+50*i,25+50*j,50,50);
}

}
}

}

正弦运动

var restime=millis()%T-(i+j)*50;  //大于周期的剩余时间

if(restime>=0&&restime<PI*200){
return (50-25*sin(restime/200));
}
else if((restime>=T/2&&restime<T/2+PI*200)){
return (50-25*sin((restime-T/2)/200));
}
else
return 50;

二、码绘拓展

1.一开始是对示例进行简单的变换,将方块变为圆。


2.在绘制实心圆的基础上,又复制了绘制实心圆的代码,并将填充颜色设置为了白色,这样,就能绘制出圆环了

3.把半径变大
radius = width/float(num_side+1);

以及将圆与圆间距减小
osc = 25*(sin(TWO_PI (y-rateRatiot))+ cos(TWO_PI (x-rateRatiot)));
ellipse(2*(radius+iradius),2( radius+j*radius),osc,osc);

最终生成气泡运动

三、心得体会

从思路方面来考虑,编程和手绘的差距其实并不大,手绘一开始要做的事情就是构图,确定好画面的大致框架和分布,用p5来进行编程作画也是一样,确定好画布的大小和作图的关键点位,确定框架。从技术上来说,手绘的要求更高一点,因为使用p5作画是依靠调用现成画出的都是标准的图形,而手绘有诸多因素的影响,如画笔、纸张、绘画者的技术等,但正是如此,手绘才会显得多样化。创作体验上来说,使用p5编程作画比较适合重复性强的作画,手绘更适合创造性的作画,p5自带的曲线函数要确认点位才能够连出直线,没有手绘那样随心所欲。从创作偏好方面,我喜欢用p5画一些简单、重复性高的画面,手绘更适合创造性的作画。

  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
Swae. 发布了9 篇原创文章 · 获赞 1 · 访问量 320 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: