如何使用Java在四边形内找到像素点?

时间:2011-02-08 15:58:29

标签: java image process polygon pixels

我做了一些图像处理,我有四边形4点的坐标。 (像梯形一样) 如何获得其中所有像素的坐标?我顺便使用Java。 谢谢!

3 个答案:

答案 0 :(得分:1)

您需要扫描线多边形填充。

这是一个关于这个主题的快速PDF讲座:

http://www.cs.binghamton.edu/~reckert/460/lect11_2009-areafill-transformations.pdf

这是一个网页示例,其中包含一些示例C代码和基本概念的简要说明:

http://alienryderflex.com/polygon_fill/

这是简短形式。将四边形线划分为左侧和右侧的线。对于每个常数Y坐标行,找出左边的交叉点;弄清楚右线的交叉点;两个交叉点之间的那一行上的所有像素都在你的梯形内。

就历史而言,这种事情最初(可能仍然是)用于在软件中渲染3D场景。我认为它当时有一个不同的名字,但我不记得了。但是,您实际上不必绘制像素;无论你是否绘制它,算法都会给你像素。

答案 1 :(得分:0)

http://wiki.processing.org/w/Find_which_side_of_a_line_a_point_is_on有关于如何找到一个点所在行的哪一侧的伪代码。

如果你的四边形由点A,B,C,D定义 - 检查你的点是否在AB的左侧,BC,CD和DA应该给你答案。

编辑:哎呀,我把你的问题看作是找到 a 点,而不是所有点。希望这仍然有用。

答案 2 :(得分:0)

这是碰撞检测问题吗?你想知道一个给定的点是否在一个形状内?或者你真的想要你形状内所有点的坐标吗?