Camera 处理-更改相机方向和固定文本位置
我希望能够在固定位置显示文本时更改相机方向。相机角度应随鼠标在窗口上的位置而变化Camera 处理-更改相机方向和固定文本位置,camera,orientation,processing,Camera,Orientation,Processing,我希望能够在固定位置显示文本时更改相机方向。相机角度应随鼠标在窗口上的位置而变化 让我们考虑这个例子: int sizeX = 600; int sizeY = 600; void setup() { size(sizeX, sizeY, P3D); } void draw() { background(204); stroke(0, 0, 0); //camera(mouseX, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0
让我们考虑这个例子:
int sizeX = 600;
int sizeY = 600;
void setup()
{
size(sizeX, sizeY, P3D);
}
void draw()
{
background(204);
stroke(0, 0, 0);
//camera(mouseX, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0, 0, 0, 1, 0);
place();
stroke(0);
displayInfos();
}
void displayInfos()
{
stroke(0, 200, 200);
line (0,20,sizeX,20); // monitor bar
fill(0);
textSize(10);
text ("TEXT 1:", sizeX*0.05,sizeY*0.1-20);
textSize(12);
text ("TEXT 2", sizeX*0.7,sizeY*0.95);
}
void place()
{
pushMatrix();
translate(sizeX/2, sizeY/2, 0);
noFill();
rotateX(-PI/6);
rotateY(PI/3);
box(150);
popMatrix();
}
<> >代码> DePosifIfSoSo(<代码>函数)绘制一行A,在固定位置写入一些文本,而<代码>位置()/代码>函数在屏幕中间绘制一个框。
如果在draw()
函数中取消对摄影机命令的注释,则整个场景将旋转。我想文本和酒吧被固定在屏幕上,并根据鼠标位置旋转框
如何在处理过程中实现这一点?只需将对camera()函数的调用放在pushMatrix()函数之后:
void place()
{
pushMatrix();
camera(mouseX, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0, 0, 0, 1, 0);
translate(sizeX/2, sizeY/2, 0);
noFill();
rotateX(-PI/6);
rotateY(PI/3);
box(150);
popMatrix();
}
调用pushMatrix()基本上是说“记住当前的旋转和平移”,然后你可以做任何你想要的旋转和平移,画一些东西,然后调用popMatrix(),基本上是说“回到我告诉你要记住的其他设置”
现在,您记住(按下)默认旋转,执行旋转和平移(通过摄影机函数),绘制长方体,然后通过popMatrix()函数返回默认旋转。然后,当您绘制文本时,它将再次使用默认的旋转和平移。非常感谢。简洁明了的回答