【问题标题】:Draw a rectangle arround a polygon when given in certain angle以特定角度在多边形周围绘制一个矩形
【发布时间】:2012-09-09 23:50:53
【问题描述】:

使用谷歌地图 V3 API

如何在多边形周围绘制一个矩形(它不再是谷歌地图矩形,而是一个矩形多边形)。然而重要的是矩形已围绕某个给定角度旋转。我并不是要先计算多边形坐标的最小值和最大值来绘制一个矩形,然后再旋转它;

这张图片可能是我想要完成的更好的描述。

我想要完成的是使多边形的边界矩形成一个角度。

【问题讨论】:

  • 在您的示例图片中,矩形的顶部应该与多边形接触还是固定距离?另外,你的多边形是凹的还是凸的?
  • 顶部是否应该接触多边形?我不明白你的意思。我想要完成的是使多边形的边界矩形成一个角度。
  • 如何确定角度?
  • @Marcelo:角度由用户给定;例如在输入表单中
  • 您需要使用旋转卡尺算法,请参阅anotherpageinthebrainbook.blogspot.co.uk的 PHP 实现

标签: google-maps-api-3 geometry polygon


【解决方案1】:

这与寻找一个不旋转的边界框非常相似。

如果您的旋转角度为 alpha,则沿 Ox 和 Oy 取单位向量,并将它们旋转该角度 alpha 以获得单位向量 X 和 Y。 现在您正在寻找关于 X,Y 的边界框。

对于集合中的每个点(由向量表示)P,您可以通过点积得到定向投影:Px = P.X 和 Py = P.Y

如果

Mx is the max Px, mx is the min Px.

My is the max Py, my is the min Py.

那么这是你的边界矩形。

我不确定您需要什么表示形式,但说它的顶点是:

mx * X + my * Y
mx * X + My * Y
Mx * X + my * Y
Mx * X + My * Y

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
相关资源
最近更新 更多