如何解决如何以替代入门方式编写此处理代码?
如何以替代(入门)方式编写代码(如下)?我不希望使用createShape,setFill和addChild。相反,还有其他方法可以执行相同的操作吗?
grid = createShape(GROUP)
for i in range(C*R):
self.cell = createShape(RECT,(i%C)*S,(i//C)*S,S,S)
self.cell.setFill(colors[i] if i in filled else 210)
grid.addChild(self.cell)
解决方法
假设您尝试创建一个矩形网格:
final int _numRows = 5;
final int _numCols = 7;
int l = 20;
int t = 20;
int w = 90;
int h = 60;
int hg = 10;
int vg = 10;
int left;
int top;
void rectGrid() {
for(int k = 0; k < _numRows; k++) {
for(int j = 0; j < _numCols; j++){
left = l + j*(w+vg);
top = t + k*(h+hg);
stroke(255);
strokeWeight(2);
fill(118);
rect( left,top,w,h);
}
}
}
void setup() {
size(800,500);
background(0,245);
rectGrid();
}
void draw() {
}
,
添加颜色阵列:
/*
Adds color array to rectangle grid.
*/
final int _numRows = 5;
final int _numCols = 7;
int l = 20;
int t = 20;
int w = 90;
int h = 60;
int hg = 10;
int vg = 10;
int left;
int top;
int count = 0;
color[] c;
void colorArray(){
for(int x=0; x< _numRows*_numCols; x++){
c[x] = color(random(255),random(255),random(255))
}
}
void rectGrid() {
for(int k = 0; k < _numRows; k++) {
for(int j = 0; j < _numCols; j++){
left = l + j*(w+vg);
top = t + k*(h+hg);
stroke(255);
strokeWeight(2);
fill(c[count]);
rect( left,h);
count++;
}
}
}
void setup() {
size(800,245);
c = new color[_numCols*_numRows];
colorArray();
// Make sure the color array is filled first
rectGrid();
}
void draw() {
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。