从较小的矩形构造一个矩形

时间:2013-07-14 20:52:26

标签: javascript math screen coordinates rectangles

在过去的几个小时里,我一直试图在任何角度从较小的矩形构造一个矩形;我想象这样做http://i.stack.imgur.com/Ymakk.png

[黑线代表构造矩形的轮廓,红线代表构造矩形的三角形。红色矩形也必须完全笔直。 ]

显然它不会看起来非常明确,除非我在尝试渲染时有一个非常小的增量,但最终产品希望看起来像一个预定角度的矩形。

屏幕设置为左上角为(0,0),右下角为(1,1)。我该怎么做?不是专门寻找实际代码,伪代码甚至是解释,也许是一些数学......会很棒!提前谢谢。

1 个答案:

答案 0 :(得分:0)

这里有一些几何形状:

如果您的矩形完全对齐,您可以绘制一个大矩形,然后赢了。

如果它在任何角度都被轻视,你可以将这些线表示为简单的方程式

y = m * x + c

在这里插入两条边的x和y来计算m和c(实际上是一个非常简单的过程),或者你可以计算出m = tan(角度)

然后,您可以“只”沿着y坐标向下走,并通过将y,c和m值插入等式并求解x来获得属于矩形的左右线上的相应x位置。

如果你看一下你的矩形图片,你可以看到基本上有三个部分:第一部分从底部到左下边缘。它沿着左侧的长边并且在左侧遇到边缘。在那之后你沿着右边的两个短边然后你遇到右上边缘并向上到左上角(当然你也可以从上到下这样做)

您需要仔细检查是否已经到达左侧或右侧两条线之间的边缘,并在适当的时刻切换m和c的值。

我认为这应该让你接近解决方案