请教一个平面几何和图形方面的算法问题

dongle2001 2009-07-09 10:00:04
加精
有两个点的坐标, 将其中的一个点作为圆心,另一个点按照圆心旋转某个角度X,如何得到旋转之后的这个点的新坐标?
...全文
211 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzczwh 2009-07-10
  • 打赏
  • 举报
回复
用CAD画出来最简单。
zhanghua_1228 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 caotoulei 的回复:]
高中学的极坐标都不记得了吗?
x=rCos@
y=rSin@
把A点的坐标平移至原点,然后换成极坐标,B点极坐标 @+d@ 以后,再转成直角坐标,再移回原来位置,就可以了撒。
[/Quote]

支持
这是高中数学(好像是初中的)里常用的方法,先平移到原点,原来的点可以通过反三角函数来得到,再加上移动的角度,
x=rCos@
y=rSin@
再加回原来平移的数就可以得到了
baba72 2009-07-10
  • 打赏
  • 举报
回复
up
gwemail2003 2009-07-10
  • 打赏
  • 举报
回复
1 用旋转变换即可
gwemail2003 2009-07-10
  • 打赏
  • 举报
回复
1 用旋转变换即可
livs_ly_2010 2009-07-10
  • 打赏
  • 举报
回复
仰慕牛人。!
ilovedrv 2009-07-10
  • 打赏
  • 举报
回复
上面是FPoint是浮点形式的点表示方式, angle是弧度
ilovedrv 2009-07-10
  • 打赏
  • 举报
回复
下面是C++代码例子



/*
旋转点操作

@param center 旋转中心
@param point 操作点
@param angle 旋转角度

@return FPoint 返回旋转后的点
*/
FPoint CShape::RotatePoint(FPoint center, FPoint point, double angle)
{
FPoint Circumpt;
Circumpt.x = cos(angle) * (point.x - center.x) + sin(angle) * (center.y - point.y) + center.x;
Circumpt.y = center.y - sin(angle) * (center.x-point.x) - cos(angle) * (center.y - point.y);

return Circumpt;
}
lmg671 2009-07-10
  • 打赏
  • 举报
回复
转换成极坐标
cht_1988 2009-07-10
  • 打赏
  • 举报
回复
有点复杂啊
caotoulei 2009-07-10
  • 打赏
  • 举报
回复
高中学的极坐标都不记得了吗?
x=rCos@
y=rSin@
把A点的坐标平移至原点,然后换成极坐标,B点极坐标 @+d@ 以后,再转成直角坐标,再移回原来位置,就可以了撒。
bj0629 2009-07-10
  • 打赏
  • 举报
回复
学习了
laorer 2009-07-09
  • 打赏
  • 举报
回复
先把圆心那点移动到 原点上,另一点也要相应的进行移动,然后再通过三角函数把另一点的新坐标算出来,然后移动新的点的坐标,
dongle2001 2009-07-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rumlee 的回复:]
假设两个点的坐标分别为A(x1,y1),B(x2,y2),求C(x3,y3)

首先根据A与B的距离和A与C的距离相等,列一个方程
(x1-x2)^2+(y1-y2)^2=(x1-x3)^2+(y1-y3)^2
再根据角度列一个方程,转过的弧度是X
(y1-y2)/(x1-x2) + X = (y1-y3)/(x1-x3)

这样的一个二元方程组应该可以解了吧。
[/Quote]

不好意思,你有解二元方程组的方法吗,我不会,呵呵。
rumlee 2009-07-09
  • 打赏
  • 举报
回复
假设两个点的坐标分别为A(x1,y1),B(x2,y2),求C(x3,y3)

首先根据A与B的距离和A与C的距离相等,列一个方程
(x1-x2)^2+(y1-y2)^2=(x1-x3)^2+(y1-y3)^2
再根据角度列一个方程,转过的弧度是X
(y1-y2)/(x1-x2) + X = (y1-y3)/(x1-x3)

这样的一个二元方程组应该可以解了吧。
JhunHoonXZ 2009-07-09
  • 打赏
  • 举报
回复
有两个点的坐标,你就有两个点的距离
旋转某个角度X,你有一个与X轴或者Y轴的夹角

这样就有了一斜边一角
用三角函数求两直角边吧
dsl200 2009-07-09
  • 打赏
  • 举报
回复
我讨厌数学,可还是佩服能写会算的人。
hhwei1985 2009-07-09
  • 打赏
  • 举报
回复
帮顶了
baetg 2009-07-09
  • 打赏
  • 举报
回复
学习了
liushuang825 2009-07-09
  • 打赏
  • 举报
回复
进来学习学习
加载更多回复(8)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧