互动媒体技术——Processing模仿并拓展动态爱心图案

总体步骤概述

1.观察图形,总结其中的规律
2.将规律一步一步转化为代码,注意封装性
3.应用交互性和用户感官,拓展作品

一、观察图形、总结规律

在这里插入图片描述

(1)单个爱心:

单个爱心是由许多个立方体拼接而成的,每行方块的位置不同以及个数不同,但是每个小方块的大小相同。方块的边框是没有消隐的。

(2)整体爱心的位置:

4*4个爱心,每行4个,每列4个,间隔相等。
在这里插入图片描述

(3)整体爱心的运动:

在这里插入图片描述
<1>.可以观察到,每一斜排的爱心的运动是一致的,因此每一斜排可以归为1组。第一排和最后一排是一致的,因此这两排为一组。一共有六组。
<2>.从第一排到最后一排,正好转过360°,因此六组,每组间隔360°÷6=60°。设置起点不同即可,但是运动速率是一致的。

二、将规律一步一步转化为代码,注意封装性

(1)编写单个爱心

<1>首先想到,16个爱心,不可能每一个都写一段代码来绘制爱心,所以我们可以建立一个爱心的类,给它添加一个绘制爱心的功能

class lovePitch{
   
	public void drawLove2(){
   
	}
}

<2>而既然要绘制爱心的话,当然得指定绘制爱心所在的位置,所以该类需要拥有成员变量:爱心的位置、爱心的颜色、组成爱心的方块大小,这里可以在构造函数中进行设置

class lovePitch{
   
  lovePitch(){
   
	    
	  }
  lovePitch(float x,float y,float z,float size,int startAngle){
   
    this.x=x;
    this.y=y;
    this.z=z;
    this.size=size;
    this.startAngle=startAngle;
    this.c=color(255,0,0);
  }
}

<3>开始绘制爱心的函数编写:
绘制爱心时,得先学会写3D效果的方格,因此我们先构建一下3D的方块。查到官方API给出了参考:
在这里插入图片描述
使用两个for循环开始编写爱心桃,一共是6行,7列,其中有一些缺省,使用if语句就可以判断是画还是不画。这里使用了popMatrix()和pushMatrix()可以保存和还原之前的状态。
在这里插入图片描述

 public void drawLove2(){
   
    pushMatrix();
    translate(x,y,z);
    fill(c);
    ortho(
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值