processing PImage 绕自身旋转代码

processing中PImage加载的图片绕自身旋转

关键代码 

imageMode(CENTER); 绕中心

每个PImage独立开来

pushMatrix();
  translate(width/2, y);  //先移动到图片存放位置
  rotate(angle);   //旋转一定角度
  image(img, 0, 0);  //显示图片
  popMatrix();

完整代码如下:

PImage img;
PImage img2;
float angle;
float y=0;

void setup() { //Runs once upon execution of the program
  size(842, 597);
  smooth();
  img = loadImage("1.png");
  imageMode(CENTER);
  img2 = loadImage("2.png");
  imageMode(CENTER);
  //noLoop();
}
void draw() {
  background(204);
  angle += 0.01;
  y += 1;
  pushMatrix();
  translate(width/2, y);
  rotate(angle);
  image(img, 0, 0);
  popMatrix();
  
  pushMatrix();
  translate(width/2+100, y);
  rotate(angle);
  image(img2, 0, 0);
  popMatrix();
 
}



Processing中画自画像通常涉及到图形绘制和用户交互。以下是一个简单的示例,它创建了一个窗口,并让用户通过鼠标点击选择绘画区域,然后在那个区域内绘制像素点来构成自画像: ```java import processing.core.PApplet; import processing.core.PImage; public class SelfPortrait extends PApplet { PImage portrait; // 用于存储自画像的图像 void setup() { size(400, 400); portrait = createEmptyImage(width, height); background(255); // 设置背景色 } void draw() { updatePortrait(); // 每次循环都更新画像 image(portrait, 0, 0); } void mousePressed() { if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) { int pixelColor = color(mouseX, mouseY, 255); // 获取点击位置的颜色 portrait.set(xcor, ycor, pixelColor); // 将颜色应用到画像对应的位置 } } void updatePortrait() { for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { int pixelColor = portrait.get(x, y); // 这里你可以选择将当前像素点的颜色与原点像素点的颜色对比,如果相近就保留, // 或者直接复制原点像素值,这里为了简化示例,我们直接复制 fill(pixelColor); rect(x, y, 1, 1); } } } } // 要运行此代码,需要在Processing环境中打开并保存文件为SelfPortrait.java,然后运行程序。 ``` 在这个例子中,`updatePortrait()`函数遍历整个画像,并在每个像素点处放置一个小方块(rect()),模拟了像素点的绘制。`mousePressed()`监听鼠标的点击,将点击位置的颜色应用到画像上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jswm20150115

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值