【发布时间】:2020-12-09 14:39:43
【问题描述】:
我有这段代码,它基本上读取图像的每个像素并用不同的形状重新绘制它。所有形状都将使用sin() 波浪淡化。
现在我想在它们淡入时围绕它自己的轴 (shapeMode(CENTER)) 旋转每个“Pixelshape”,而 translate 函数以这种复杂的方式让我头疼。
这是目前为止的代码:
void setup() {
size(1080, 1350);
shapeMode(CENTER);
img = loadImage("loremipsum.png");
…
}
void draw() {
background(123);
for (int gridX = 0; gridX < img.width; gridX++) {
for (int gridY = 0; gridY < img.height; gridY++) {
// grid position + tile size
float tileWidth = width / (float)img.width;
float tileHeight = height / (float)img.height;
float posX = tileWidth*gridX;
float posY = tileHeight*gridY;
// get current color
color c = img.pixels[gridY*img.width+gridX];
// greyscale conversion
int greyscale = round(red(c)*0.222+green(c)*0.707+blue(c)*0.071);
int gradientToIndex = round(map(greyscale, 0, 255, 0, shapeCount-1));
//FADEIN
float wave = map(sin(radians(frameCount*4)), -1, 1, 0, 2);
//translate(HEADACHE);
rotate(radians(wave));
shape(shapes[gradientToIndex], posX, posY, tileWidth * wave, tileHeight * wave);
}
}
我尝试了很多计算,但它只是让我的草图爆炸。 在我尝试基本相同但只是循环的另一个草图中工作的一个是(等效写入):
translate(posX + tileWidth/2, posY + tileHeight/2);
我想我只是没有得到矩阵吗?我怎样才能把它们翻译成它的意思?
【问题讨论】:
标签: rotation processing translate