java搜索用于绘制带角度直线的正确坐标
我想用以特定角度绘制的线来着色多边形。
我已经在ArrayList of ArrayList of points中用多边形扫描线算法找到了所有点。
这意味着在ArrayList<ArrayList<Point>>
中有ArrayList<Point>
,它们具有一个y值的多边形的所有点。例如,矩形(2,2)
和(5,2)
的这两个点。因此,外部ArrayList包含可以使用drawLine()
绘制的所有水平点。
现在我必须计算drawLine(x1,y1,x2,y2)
的端点x2和y2
是否有可能获得x2和y2多边形的正确点
# 1 楼答案
试图手动实现这一点相当困难
考虑使用多边形作为形状设置GraceS2D中的剪辑路径。然后,从多边形的边界矩形的基线上的点,绘制足够长的着色线,以超过边界矩形的平行线
# 2 楼答案
你可以在wikipedia上查找如何找到直线交点
唯一的困难是确保交点实际上位于线段的右侧。一个选项是检查交点的坐标是否在由多边形边的两个端点形成的矩形的边界内。只需比较坐标,就可以轻松做到这一点
一旦在多边形的两侧找到了该线的交点,就可以使用
g.drawLine()
将它们连接起来找到多边形的两条边(只要它是凸的)的简单而简单的解决方案是在所有边上循环,直到找到两条在边的边界上相交的边。然后,把这两个十字路口连接起来