假设圆的半径为R,即x1-ox,(x1,y1)与圆心(ox,oy)的夹角为A,则有
x1 = R * cosA;
y1 = R * sinA;
再假定(x2,y2)与圆心(ox,oy)的夹角为B,待求坐标为x,y,则有
x = R * cos(A+B);
y = R * sin(A+B);
四个方程经过整理,可得
x = x1 * cosB - y1 * sinB;
y = y1 * cosB + x1 * sinB;
也就是说,只需要知道起始点(x1,y1)和点(x2,y2)与圆心的夹角,即待转角度B,就能求出待求坐标。
在js中,专门有atan2这个三角函数求旋转角度,
其他语言中如果没有,也可以通过三角形两邻边的比值计算出来。
可能我的图画的有点问题,其实 点(ox,oy)并不是(0,0)点,(ox,oy)和点(x1,y1)也不一定在一条直线上
@deeeeeed: 这个没有关系,只需要知道(x1,y1)和转动的角度B。半径R是可以用勾股定理算出来的。最后推导出来的两个等式里R也是不需要的。
1、用勾股定理计算(ox,oy)到(x2,y2)的长度
2、分别用等比关系计算所求点的x和y坐标
1.第一个问题,勾股定理只适用于直角三角形,你并没有说是直角三角形。计算平面直角坐标系中点到点的距离不是有公式么?
好像是什么平方减平方再开方,你查一查数学书吧。
2.这是数学问题好不好,用微积分好像可以搞定。