gpt4 book ai didi

java - Path2D.intersect() 类似于 Area.intersect()

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:15 26 4
gpt4 key购买 nike

我尝试过 Area.intersect(),并且想知道是否有一种方法可以使用 Path2D 创建与此类似的方法,因为我注意到使用 Path2D 作为形状时性能有所提升。换句话说,获取大 Path2D 的一部分并从该部分创建较小的 Path2D。

map 绘制 MapDraw游戏内 View In-Game

注意:使用下面的 HashMap ,我根据每个“对象”将平铺形状渲染到查看区域,在本例中将是不同的图像类型:海洋、草、黑曜石、岩石、沙子和泥土...

LinkedHashMap<Point, LinkedHashMap<Object, Path2D.Double>>

编辑:每种图像类型都有自己的整个 map 区域,大小为 10000px x 100000px,相交的图 block 大小为 100px x 100px,这些图 block 作为 Path2D.Double 的给定类型按点插入链接的 HashMap ,并通过当前查看区域中的点渲染到屏幕上。

最佳答案

目前尚不清楚您使用的哪个 SDK 提供了 Area.intersect()。然而,根据您打算与路径相交的内容,这可能是一个复杂的问题 - 请注意,与多边形相交的 path2D 可能会变成多条路径!

但是,有一些已知的算法可以将路径与多边形相交,例如 Cyrus-BeckSutherland-Cohen .

我在 Java 中找到了 Cohen-Sutherland 的这段代码:

http://worldofenggcodes.blogspot.co.il/2013/10/cohen-sutherland-line-clipping-algorithm.html

这看起来没问题,尽管您可能需要将代码提取到更可用的函数中。 Cyrus-Beck 可能是一个更好的选择,尽管我只能找到伪代码:

http://www.moreprocess.com/computer-graphics/cyrus-beck-line-clipping-algorithm

一旦实现了其中任何一个,您需要将其应用到路径中的每一行,以获取与正方形相交的新行列表。

关于java - Path2D.intersect() 类似于 Area.intersect(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23943868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com