2016-01-31 59 views
2

我真的有这个问题。多边形(四边形)到方形单元格

我有一个可以是任何形状的多边形(四边形)。当我的鼠标在多边形内部时,我需要找到鼠标所在的位置(四边形内)的x,y值,就好像该poygon是完美的方形。进一步解释;我有一个应用于多边形的32x32纹理,我需要知道鼠标结束的纹理的x,y。 我有一些代码适用于大多数形状,但如果TR.Y小于TL.y,则会中断。 我有一些非常简单的代码,测试光标是否在多边形内(通过两个三角形测试)。但我无法弄清楚如何使用它来生成虚拟方形投影的x,y。

这个问题在杀我。我正在尝试执行的操作名称是什么?有没有人知道解释方程以代码形式(任何类型的代码)呈现(而不仅仅是数学符号?)。任何形式的帮助都会如此赞赏。

我正在用特殊格式的纹理(每个像素具有唯一值)进行第二次渲染,以便我可以进行颜色测试以获得近似的x,y匹配(并且精度是可以被泄露的东西在这里不会造成太大的麻烦) - 但随后我将不得不解决DX Lib试图混合并平滑特殊纹理的尝试,因为它会被扭曲以填充四边形。)编辑:适用于许多四元组的代码形状

+0

您好,欢迎SO。如果你向我们展示一些你的代码,那么我们可以真正弄清楚确切的问题。 – Alexander

+0

我有一个4点矩形 - 代表32x32的矩形 - 矩形旋转了45度,然后矩形上的每个Y点都增加了一个高度值(减去y),该矩形给出了极好的等距表示(很好地连绵起伏的丘陵,高山和东西)。这个问题不是我的代码中的一个错误,而是一个算法失败 - 我需要将项目2D鼠标位置撤回到瓦片的相应x,y,并删除“高度”调整。 –

+0

不能发布任何*易读的*代码 - 用户限制(字符&没有图像),因为我只有这个帐户。 imgur.com/mhQ04kX –

回答

1

它取决于方法 - 纹理如何绘制在这个四边形。

如果它使用透视变换Square => Quad,则必须使用反变换矩阵Quad => Square。短article

对于线性插值方法见this page

+0

Thankyou - 在插值链接中使用代码示例。试图发布我的结果,但字符限制限制阻止了我。但它几乎只是你给我的链接中的代码副本。谢谢 –