gpt4 book ai didi

java - 如何计算一个点的矩形坐标及其到四个边的距离

转载 作者:行者123 更新时间:2023-11-30 08:54:22 29 4
gpt4 key购买 nike

我想创建一个 Rectangle,它的一侧与另一侧不同。

(所有描绘的线都是直线)

普通矩形的生成类似于 new Rectangle(50/*LocationX*/, 50 */LocationY*/, 50/*SizeX*/, 100/*SizeY*/);, 和看起来像这样: enter image description here

但是,我想要一个像 new Rectangle(50/*LocationX*/, 50 */LocationY*/, 25/*25 从红线的中心点开始 */, 30/*30 从蓝线中心点*/, 50/*绿线中心距50*/, 100/*黄线中心距中心100*/);

换句话说,我实际上想保持形状不变但移动中心点。

我该怎么做?

最佳答案

在 Java 中,rectangles由左上角坐标、宽度和高度定义。

如果我在这里理解你的问题,什么描述了你的矩形:

  • pointX, pointY 矩形中一个点的坐标。命名为
  • distanceToTop到矩形顶部(绿线)的距离。
  • distanceToBottom到矩形底部的距离(黄线)。
  • distanceToLeft到矩形左侧的距离(红线)。
  • distanceToRight到矩形右侧的距离(蓝线)。

给定的。矩形的左上角有坐标:

(pointX - distanceToLeft, pointY - distanceToTop)

整个矩形的大小为(width, height):

(distanceToLeft + distanceToRight, distanceToTop + distanceToBottom)

因此您的实例将是:

Rectangle r = new Rectangle(
pointX - distanceToLeft, // upper-left corner X
pointY - distanceToTop, // upper-left corner Y
distanceToLeft + distanceToRight, // width
distanceToTop + distanceToBottom // height
);

关于java - 如何计算一个点的矩形坐标及其到四个边的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29435597/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com