Processing 翻译功能

Processing 翻译功能,processing,translate,Processing,Translate,有人能给我解释一下在使用处理时如何使用翻译功能吗 int startposition=0;   无效设置(){ 尺寸(500500); } void draw(){ 背景(255); fill(0); 翻译(起始位置,50); rect(0,0200200); 椭圆(0,0300200); 起始位置=起始位置+1; } 既然我们已经说过startposition=startposition+1,有人能解释一下在这里使用translate的目的吗 我不明白translate函数是做什么

有人能给我解释一下在使用处理时如何使用翻译功能吗

int startposition=0;
   
无效设置(){
尺寸(500500);
}   
void draw(){
背景(255);
fill(0);
翻译(起始位置,50);
rect(0,0200200);
椭圆(0,0300200);
起始位置=起始位置+1;
}
既然我们已经说过startposition=startposition+1,有人能解释一下在这里使用translate的目的吗

我不明白translate函数是做什么的

startposition = startposition +  1; 
如果你不翻译,这一行就没用了。“平移”实际上会更改图形画布的当前原点。原点通常位于左上角,从(0,0)开始

因此,translate将使之后绘制的所有内容都位于x原点的
startposition
像素处,即0


要了解我的意思,请尝试运行带有translate和不带translate的程序,您将看到其中的区别。

类似的问题最好通过阅读来回答

translate()
函数的参考:

指定在显示窗口中置换对象的量。x参数指定左/右平移,y参数指定上/下平移,z参数指定朝向/远离屏幕的平移。将此函数与z参数一起使用需要将P3D作为参数,并与上述示例中所示的大小结合使用

转换是累积的,并应用于之后发生的所有事情,随后对函数的调用会累积效果。例如,调用translate(50,0)然后调用translate(20,0)与translate(70,0)相同。如果在draw()中调用translate(),则循环再次开始时将重置转换。可以使用pushMatrix()和popMatrix()进一步控制此函数

示例:

翻译(30,20);
rect(0,0,55,55);

//三维翻译需要P3D
//作为size()的参数
大小(100,100,P3D);
//横移30,向下平移20,然后
//50后退,或“远离”屏幕。
翻译(30,20,-50);
rect(0,0,55,55);

rect(0,0,55,55);//在原始0,0处绘制矩形
翻译(30,20);
rect(0,0,55,55);//在新的0,0处绘制矩形
翻译(14,14);
rect(0,0,55,55);//在新的0,0处绘制矩形

换句话说,
translate()
函数移动绘图画布,以便对
rect()
eliple()
等函数的任何后续调用都将被偏移。这使您能够在不更改所有屏幕对象位置的情况下移动“摄影机”


请注意,您正在位置
0,0
绘制矩形和圆形。您没有使用
startposition
变量作为它们的位置。这就是为什么必须调用
translate()
来移动它们。您可以取消对
translate()
的调用,但必须使用
startposition
变量作为位置。

欢迎使用堆栈溢出。不幸的是,我们不知道您使用的是什么库,或者上下文是什么。如果你发布一个帖子,我们很可能会帮助你。java函数??你一定是指方法。那是哪一班?你看过javadoc吗?他们通常描述得很好这是在处理…@JonSkeet你能帮我一下吗,我刚刚编辑了question@sharonbn你能看一下吗?非常感谢你的帮助