创意编程作业

作业1动态图形临摹
主题:从参考资料中的“动态图形艺术”中选取不少于1幅作品,用编程方式临摹,并进行拓展
要求:
编程语言与工具:编程可以用p5,processing,若想用其他语言或工具,提前向老师说明情况;
作品: 要有一件临摹的作品;还要有至少一件拓展的作品;每幅作品录制一段半分钟内的视频;
报告:写一篇文章,发表为博文/推文等形式,描述从原作中提炼出的规律,既要用平实易懂的语言描述,也要尝试运用凝练的数学语言表达(公式、方程、推导等),特别要描述出这些规律在原作中如何呈现的?在自己的扩展中如何呈现和变化的?

参考的是下列gif:
在这里插入图片描述-

虽然它好像放进word文档里就不会动了
然后由于是仿的,就没弄那么像,整了个差不多是这样扩散的圆
主要代码
void myCircle(float oriX, float oriY, float dirX, float dirY, int timer, int radius) {
PVector direction = new PVector(dirX, dirY).normalize();
circle(oriX, oriY, timer);
circle(oriX + direction.x * timer * 2, oriY + direction.y * timer * 2, radius-timer);
}

void draw() {
clear();
PVector basicDir = new PVector(1, 0);
for (int i = 0; i < 12 ; i++) {
basicDir = basicDir.rotate(2*PI/12);
myCircle(512 + basicDir.x * 120, 512 + basicDir.y * 120, basicDir.x, basicDir.y, timer, 60);
}

timer = (timer + 1) % 60;

后面拓展的弄了一个带半径的圆,其实也是看见网上有类似的,但是是实心圆,中间给加了一点点东西,类似于一种波动
在这里插入图片描述

主要代码

void draw()
{
t = t + dt;

background(255);

for(int i =0; i<num_side; i++)
{
for(int j =0; j<num_side; j++)
{
fill(0);
x=float(j)/float(num_side);
y=float(i)/float(num_side);
osc = radius*(sin(TWO_PI (y+t))+ cos(TWO_PI (x+t)));
ellipse(2
(radius+i
radius),2*( radius+j*radius),osc,osc);
}
}

for(int i =0; i<num_side; i++)
{
for(int j =0; j<num_side; j++)
{
x=float(j)/float(num_side);
y=float(i)/float(num_side);
fill(255);
osc = 25*(sin(TWO_PI (y-rateRatiot))+ cos(TWO_PI (x-rateRatiot)));
ellipse(2*(radius+iradius),2( radius+j*radius),osc,osc);
}
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值