总体步骤概述
1.观察图形,总结其中的规律
2.将规律转化为代码,注意封装性
3.应用交互性,拓展作品
一、观察图形,总结其中的规律
(1)图形组成元素
图形是由三个立方体的线框图以及立方体的每个顶点防止一个小球所形成。
(2)图形运动特征
可以观察,三个立方体均在旋转,但是每个立方体的旋转轴却不一样。这里看似简单,但是涉及到很多步的角度的转换。
首先了解一下processing的坐标系:
最外圈的立方体:这里先看作绕Y轴旋转
中间的立方体:绕x轴旋转
最小的立方体:绕Z轴旋转
当然,它们还需要旋转一定的角度
二.将规律转化为代码,注意封装性
第一步:分析类的关系
(1)首先每个cube都有绘制、size等成员,因此得建立一个cube类,其中包含绘制cube和设置cube大小的功能
(2)由于每个cube的旋转角度不一致,所以每个cube的旋转的方法都不一样,但可以只是内容不一样,但是方法名相同,这里我们想到的第一个便是接口。
于是分析了一下,整体的结构大致是:
第二步:开始编写每一块的代码
- Cube类:在这个类中,我把小球的绘制也放在了绘制函数一起,这样子方便看作是一个整体。
class Cube {
float size;
color c;
Cube() {
}
Cube(float size) {
this.size =size;
}
public void setColor(color c){
this.c=c;
}
public void drawCube() {
float []x={
-size/2,-size/2,-size/2,-size/2,size/2,size/2,size/2,size/2};
float []y={
-size/2,size/2,-size/2,size/2,-size/2,size/2,-size/2,size/2};
float []z={
size/2,size/2,-size/2,-size/2,size/2,size/2,-size/2,-size/2};
ortho()<