繁体   English   中英

使矩形围成一圈-Java / Swing

[英]Making a rectangle go around in a circle - Java/Swing

我的数学不是很好,所以我在一个应用程序中遇到了一些麻烦,我想在一个想要矩形代表车辆的地方进行操作,并且希望该车辆/矩形在其中“行驶”一个圆圈。 想象一下一个只有1辆车的回旋处,它永远绕着转。

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

如果有人能为我写一个简单的例子,我将不胜感激。 没有背景,没有图像,只是一个矩形“绕圈”行驶。 我正在使用Java和Swing。

抱歉,我不确定是否能明白您的确切需求。 如果需要绘制在圆内移动的矩形,可以使用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
}

如果您知道圆的半径,那么您所需要的只是一个三角函数和车辆相对于圆的角度。 您可以看一下这个简单的介绍,它可以帮助您朝正确的方向开始。

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

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

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

这更多的是评论而不是答案。

我将把这个问题分成几个简单的问题,并分别处理它们:

  • 用指定的中心位置和长轴方向绘制矩形。
  • 确定绕原点旋转的物体的中心点和长轴方向。 请注意,要使长轴成为切线,它必须垂直于穿过中心的半径。
  • 对整个系统进行平移,使其围绕所需的点而不是原点运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM