Processing 在处理过程中是否需要旋转和移动图像?

Processing 在处理过程中是否需要旋转和移动图像?,processing,Processing,我的高中毕业设计快到几个截止日期了,所以你能给我的任何建议都会很好。我的项目是编写一部电影。其思想是使用处理来移动角色(如标记),还使用代码来设置雨和火等事物的动画。现在我发现移动和/或旋转图像非常困难。这对我的项目来说是一个巨大的冲击。我目前的代码已经很复杂了,但是这里就是。 女主角形象,放射状: /* 径向轧制 */ PImage img;//声明PImage类型的变量“a” 浮球x=10; 浮球Y=200; 浮子h=300; //为速度创建一个变量 浮动速度=2;//spped设置为0以测

我的高中毕业设计快到几个截止日期了,所以你能给我的任何建议都会很好。我的项目是编写一部电影。其思想是使用处理来移动角色(如标记),还使用代码来设置雨和火等事物的动画。现在我发现移动和/或旋转图像非常困难。这对我的项目来说是一个巨大的冲击。我目前的代码已经很复杂了,但是这里就是。 女主角形象,放射状:

/*
径向轧制
*/
PImage img;//声明PImage类型的变量“a”
浮球x=10;
浮球Y=200;
浮子h=300;
//为速度创建一个变量
浮动速度=2;//spped设置为0以测试旋转。滚动运动的必要条件
浮动速度x=0。;
无效设置(){
尺寸(800800);
光滑的();
仰泳();
背景(0,0,0);//将图像加载到程序中
//改变我们画圆圈的模式,使它们保持一致
//在左上角对齐
ellipseMode(角落);
img=loadImage(“radialoutlinel.png”);
}
void RadialRoll(){
旋转(0);//如果这不是0,屏幕上将出现球
图像(img,ballX,ballY,h,h);//使用新的乐趣创建连续旋转
//绘画中的符号
}
作废提款(){
//清除背景并设置填充颜色
背景(0);
填充(255);
//在当前位置绘制圆
//椭圆(ballX,ballY,h,h);
//给速度加一点重力
迅捷=迅捷+0;
speedX=speedX+.02;
ballX=ballX+speedX;
径向滚动();
如果(球X>宽度-h){
//将位置设置为在地板上
ballX=宽度-h;
//使y轴速度达到原来的90%,
//但方向相反
speedX=speedX*-1;
//改变方向
//快速=快速;
}
如果(球X>宽度-h){
//将位置设置为在地板上
ballX=宽度-h;
//使y轴速度达到原来的90%,
//但方向相反
speedX=speedX*-1;
//改变方向
//快速=快速;
}
否则如果(球体高度-h){
//将位置设置为在地板上
ballY=高度-h;
//使y轴速度达到原来的90%,
//但方向相反
迅捷=迅捷*-1;
//改变方向
//快速=快速;
}

else if(ballY首先,当您查看
rotate()
函数时,它以弧度(从0到2π的值)作为参数,因此,当您想要流畅的旋转时,请使用类似的方法

rotate(counter*TWO_PI/360);
其中,计数器可以是在每个
draw()
循环中增加的整数值。但如果您只是将其添加到代码中,则图像将围绕点[0,0](左上角)旋转,并且您将看不到旋转1/4的图像。为了更好地理解这一点,您应该阅读此内容,然后可以从基本旋转开始:

PImage img;
int counter = 1;

void setup() {
  size(800, 800);
  smooth();
  background(0, 0, 0);
  img = loadImage("radialoutlinel.png");
  imageMode(CENTER); //you can change mode to CORNER to see the difference.
}

void draw() {
  background(0);
  fill(255);

  counter++;

  translate(width/2, height/2);
  rotate(counter*TWO_PI/360);
  image(img, 0, 0, 300, 300);
}

然后,如果您还想将图像从左向右移动,您只需调整
translate()
第一个参数。

您需要准确了解rotate()函数实际执行的操作。第一步应该是处理API:
PImage img;
int counter = 1;

void setup() {
  size(800, 800);
  smooth();
  background(0, 0, 0);
  img = loadImage("radialoutlinel.png");
  imageMode(CENTER); //you can change mode to CORNER to see the difference.
}

void draw() {
  background(0);
  fill(255);

  counter++;

  translate(width/2, height/2);
  rotate(counter*TWO_PI/360);
  image(img, 0, 0, 300, 300);
}