【发布时间】:2014-04-19 11:26:40
【问题描述】:
我正在用 Java 编写类似 http://www.gamekb.com/thumbs_v2/01872/1872657-85play-curve-fever-2.gif 的曲线蛇游戏。如果我想在特定角度下移动它:
posX += cos(angle);
posY += sin(angle);
当我按下左或右时,它会计算旋转的中间(左和右),然后
posX = middleX + sin(angle) * radius;
posY = middleY + cos(angle) * radius;
angle += PI/180;
如果我松开钥匙,它应该会计算出新的角度:
vectorx = middleX - posX; /*normal vector to tangent*/
vectory = middleY - posY;
k = -(vectorx/vectory); /*directiv of tangent. Should be angle in radians but not
in all cases */
angle = k;
这段代码意味着我计算向量[vectorx,vectory],它与我正在计算的角度垂直于我的新直线,k 来自直线的参数形式,它是以弧度表示的角度,基本上我正在尝试在我释放箭头的地方与圆相切。
【问题讨论】: