2017-01-09 91 views
1

我的处理代码基于Daniel Shiffman的Nature Of Code的Oscillation章节,主要是他根据它所朝向的方向(鼠标)旋转移动器的示例。 它不起作用,虽然我很确定它的某个地方有一点小小的错误。矩形只是飞到屏幕外面。从书(未满) 例处理三角代码不工作

void display() { 
float angle = velocity.heading2D; 
stroke(0); fill(175); pushMatrix(); rectMode(CENTER);    
translate(location.x,location.y); 
rotate (angle); 
rect(0,0,30,10); 
popMatrix(); 
} 

我的代码:

void show() { 
angle = velocity.heading2D(); 
rectMode(CENTER); 
pushMatrix(); 
translate(location.x,location.y); 
rotate(angle); 

fill(255,20,20,150); 
rect(location.x,location.y,carSize,carSize); 
popMatrix(); 
} 

设置和借鉴:

Car car ; 
void setup() { 
car = new Car(); 
} 

void draw() { 
mouse = new PVector(mouseX,mouseY); 
background(255); 
car.show(); 
car.move(); 
car.update(); 
} 
+0

你可以请张贴[mcve]吗?如果没有任何'setup()'或'draw()'函数(这意味着我们无法运行你的代码),而不是仅仅发布你的整个类,那么将问题简化为几行代码行。 –

+0

对不起,我会改变它。 – udbhavs

+0

另外,我不知道translate(location.x,location.y)是什么 – udbhavs

回答

1

我终于想通了。取而代之的

translate(location.x,location.y); 
rect(location.x,location.y,40,40); 

它必须是:

translate(location.x,location.y); 
rect(0,0,40,40);  

因为翻译已经采取原点到对象的位置,而这也正是我想提请它(0,0)。