好的,所以我有一条从已知角度射下来的射线。我知道角度、射线的长度、顶端和底端的坐标。我选择了一个预定义的 (x,y) 底端,并使用 sin() 和 cos() 我设法确定了射线顶端的 (x,y) 位置以保持角度。但到目前为止我所做的是在它的起始位置绘制射线。为了让我在保持角度的同时移动它,我需要速度。
我有这个例子 http://www.processing.org/learning/topics/reflection1.html 但我就是不知道如何计算速度。如果你们能给我一些代码或让我了解如何去做,我将不胜感激。
我正在处理中对此进行编码。如果你能用这种语言向我解释,那就太好了,如果不是……简单的文字解释就足够了。谢谢!
乐
void RayRoad(float angle)
{
//h is the hypothenuse of a right triangle and also my ray
//knowing the angle and h, i calculate the opposite and adjacent
float h=3*linii, o, a, Jx,Jy;
float theta=radians(angle);
o=h*sin(theta);
a=h*cos(theta);
//(X1,Y1) bottom end of ray are known
//I determine de top end of the ray (X2,Y2) using a and o
X2=X1+a;
Y2=Y1-o;
MoveRay();
}
void MoveRay()
{
line(X1,Y1,X2,Y2);
ModifyCoords();
}
现在我有了必要的数据,以便以正确的角度绘制那条光线。但我需要移动它(让它下来),我想知道我应该修改多少(X1,Y1)和(X2,Y2)。每次修改坐标后,我都会再次画线。