在圆的边缘移动的圆

时间:2011-12-26 22:58:45

标签: c++

正如标题所描述的那样,我想制作一个在另一个大圆圈的边缘上循环的小圆圈。我已经实现了圈子的部分,现在这里只发布如何使小圈子在这个扇区的边缘流通。我尝试了各种各样的方法,然而,没有一个被证明是成功的,因此我恳求你给我一些如何实现它的提示。

提前致谢。

2 个答案:

答案 0 :(得分:0)

你必须考虑到,对于以原点为中心的半径为1的圆,圆上的每个点都可以描述为:

P = [sin(alpha); cos(alpha)]

使用0<=alpha<2*pi

现在,如果您更改半径和中心,您将拥有:

P = [(radius * sin(alpha))+x_center; (radius*cos(alpha))+y_center]

所以,只需要一个alpha的循环从0到2 * pi(或你需要的任何圆圈),并使用上面的等式来计算小圆心的位置。

答案 1 :(得分:0)

我认为你有一个可以在笛卡尔坐标和半径的给定位置绘制圆的函数。

使用极坐标(角度/半径),将半径设置为大圆的半径减去小圆。将角度设置为您想要开始圆圈的任何位置。然后设置一个循环以将角度增加给定量。每次增量后,清除屏幕,画出大圆圈。然后将极坐标转换为笛卡尔坐标,添加到大圆的中心并绘制小圆。保持你想要的时间。