0

我的数学不是那么好,所以我在我想要做的一个应用程序中遇到了一些麻烦一个圆圈。想象一个只有一辆车的环形交叉路口,永远绕圈子。

如果我能得到一些帮助如何做到这一点,那么我将能够以示例为基础,最重要的是学习。

如果有人可以为我写一个简单的例子,我将不胜感激。没有背景没有图像,只是一个矩形“驱动”在一个圆圈周围。我正在使用 java 和 Swing。

4

3 回答 3

2

抱歉,我不确定是否可以清楚地了解您的确切需求。如果您需要绘制在圆内移动的矩形,您可以使用 sin/cos 函数。

像这样的东西:

double r = 50.0; // radius (it might radius of your circle, but consider dimensions of rectangle to make sure you are drawing inside of circle, e.g. circleRadius - rectangeDimesion / 2.0)
for (int f = 0; f < 360; f++) {
    double x = Math.sin(Math.toRadians((double)f)) * r;
    double y = Math.cos(Math.toRadians((double)f)) * r;
    // draw rectangle on [x, y] coordinates
}
于 2013-03-14T06:11:41.177 回答
1

如果您知道绕圈的半径,您所需要的只是三角函数和车辆与绕圈形成的角度。你可以看看这个简单的介绍,它应该能让你朝着正确的方向开始。

另一方面,另一种方法是使用转换矩阵,从包含两个点(您的 X 和 Y 坐标)的矩阵开始,然后将它们转换为新的坐标。

然后,您可以旋转矩形以模拟车辆转弯。

如果您的数学背景有限,第一个选项可能更容易掌握。

于 2013-03-14T06:10:56.997 回答
1

这更像是一个扩展评论而不是答案。

我会将问题分成几个更简单的问题,并分别处理每个问题:

  • 绘制具有指定中心位置和长轴方向的矩形。
  • 确定围绕原点运行的物体的中心点和长轴方向。请注意,要使长轴成为切线,它需要垂直于通过中心的半径。
  • 平移整个系统,使其围绕所需点而不是原点运行。
于 2013-03-14T06:12:16.413 回答