我想旋转我的三角形
我的代码在所有情况下都不起作用。
仅适用于此情况
triangle ( - 10, + 26, 0, -25, + 10, + 26);
所以当我点击向上,向下,向左和向右键时,我应该在适当的位置旋转我的三角形。
我不确定这是最好的方法,但到目前为止我确实喜欢这个
这是代码
float X1 = 200;
float Y1 = 200;
float X2 = 220;
float Y2 = 160;
float X3 = 240;
float Y3 = 200;
void setup() {
background(2);
size(400, 400);
}
void draw() {
background(0);
// background (0);
smooth();
fill(255);
translate(width/2, height/2);
rotate(radians(angle));
triangle ( X1, Y1, X2, Y2, X3, Y3);
//triangle ( - 10, + 26, 0, -25, + 10, + 26); This code works
}
int angle = 0;
void keyPressed() {
switch (keyCode)
{
case UP:
angle +=90;
break;
case DOWN:
angle +=180;
break;
case LEFT:
angle +=90;
break;
case RIGHT:
angle +=-90;
break;
default:
break;
}
}
答案 0 :(得分:0)
想想你正在使用的坐标。
首先,您正在转换到屏幕中心。这意味着您的坐标将全部相对于该位置而不是屏幕的左上角。
这就是你的变量不起作用的原因。看起来它们相对于屏幕的左上角,而不是屏幕的中心。
要解决您的问题,您将不得不重新定义您的变量,以便它们相对于屏幕的中心。
以这种方式思考:您正在翻译到屏幕的中心,这意味着您的新来源位于200,200
。然后你在200,200
画一个点。但这一点是相对于屏幕的中心,所以你真的是在400,400
绘制它,它离窗口的边缘。这就是你无法看到它的原因。你真的应该在0,0
上绘制它,因为你已经在那里翻译了它,它将显示为200,200
。