处理JS - 围绕固定点旋转相机?

时间:2014-08-03 14:09:52

标签: javascript processing processing.js

最近,我一直在尝试在Processing中构建一种帆船模拟器,并遇到了一个问题。我不打算详细介绍项目本身,因为我认为这不是真的相关。

这是我的问题:我需要找到一种方法让相机环顾四周,同时仍然专注于中间的物体(船)。通过这个我的意思是我想找到一个相机的圆形路径,同时它绕着船环绕。这用于许多模拟器和视频游戏,所以我认为它可以在我的项目中使用。

我已经考虑过旋转每个物体而不是相机,但我宁愿不这样做,因为处理船,帆和风已经会导致很多旋转,这只会使旋转复杂化每次玩家拖动鼠标以转动他们正在寻找的点时,它都会再次出现。因此,我认为找到相机的这条路是我现在唯一的选择,我不知道如何开始进行数学计算(进入9年级)。

如果有人在阅读此内容之前遇到此问题,(使用鼠标在相机周围旋转相机)请尝试给我一些提示。谢谢!

代码:

float x,y,z,ry;
int trimmingLimit;
void setup()
{
  size(800, 600, P3D); 
  x = width/2;
  y = height/2;
  z = 0;
  ry = 10;
  trimmingLimit = int(random(75,84)); //randomizing sheet length length

}

void draw()
{
  background(#FF844B);
  stroke(255);
  translate(x,y,z);
  pushMatrix();
  rotateY(radians(ry)); //mainsheet trimming and easing
  triangle(-120, 50, 0, -140, 0, 50); //sail
  ry=mouseY/(height/trimmingLimit); //since 80 to 85^o is the maximum amount 
  //the sail can be drawn, the height of the window is adjustable 
  //and divided by 90.
  popMatrix();
  noStroke();
  pushMatrix();
  translate(0,500,0);
  fill(98,122,255,50);
  cylinder(1000,500,15);
  rectMode(CENTER);
  popMatrix();
  fill(#AD8B7C);
  stroke(255);
  pushMatrix();
  translate(0,75);
  rotateX(radians(0));
  translate(0,75);
  triangle(-180,100,0,-50,180,100);
  popMatrix();
  fill(100);
}

float d(float n) //converting to the correct type of degrees (with 0 being wind)
{
  return n-90;
}

0 个答案:

没有答案