问题标签 [path-2d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Path2D.intersect() 类似于 Area.intersect()
我玩过 Area.intersect() 并且想知道是否有一种方法可以使用 Path2D 创建一个与此类似的方法,因为我注意到在使用 Path2D 作为形状时性能有所提升。换句话说,取大 Path2D 的一部分并从该部分创建一个较小的 Path2D。
地图绘制 游戏内视图
注意:使用下面的哈希图,我根据每个“对象”将平铺形状渲染到查看区域,在这种情况下,这些对象将是不同的图像类型:海洋、草、黑曜石、岩石、沙子和污垢......
编辑:每种图像类型都有自己的整个地图区域,即 10000 像素 x 100000 像素,我相交的图块是 100 像素 x 100 像素,这些图块作为其给定类型作为 Path2D.Double 逐点推入链接的哈希图并渲染到屏幕上通过当前查看区域中的点。
java - Java Path2D.Double,追加但不减
我已经研究过使用 EVEN-ODD Winding 规则来在一个区域中创建孔。事情在论坛上,我能想出的只是一个 Path2D.Double() 在其自身附加一个洞。我想在已经存在的 Path2D 中创建一个整体,就像 Area 类具有 Area.subtract(new Shape()); 做。生无可恋。我知道 Path2D 有能力提高我的游戏性能。
注意:输出应该是一个空的正方形,因为更大的圆圈完全覆盖了瓷砖,或者一个瓷砖的结果是圆圈相交和现有的瓷砖形状被移除,留下瓷砖的剩余部分......
研究链接 StackOverflow 线程
编辑:
java - Java Path2D 性能问题
我有一个利用 Path2D.Float 绘制矢量对象(大型分形设计)的程序。我的代码允许缩放和平移。我有一个轴对象,它具有根据当前缩放设置(存储在轴对象中)将世界坐标(双精度对)转换为显示坐标(浮点数对)的方法。
无论如何,矢量图是大而详细的,并且在世界坐标中包含许多线段。每次用户缩放或平移时,都会创建新的 Path2D 对象并将其渲染到屏幕上。
缩小时一切都非常流畅。当我放大到一定深度时会出现问题。显然 Path2D 线变得很长,这会减慢它们的渲染速度(即使绝大多数都在可视区域之外!)。这不是我的转换算法消耗资源。我对其进行了分析,与小剪辑区域相比,由于线条的大小,它肯定是 Java 图形绘制算法变慢了。
我希望有一种方法可以让 Java 自动处理大行的剪切。在绘制之前,我确实从图形对象调用 setClip()。我不明白什么需要这么多时间。当线条与剪切矩形相比较长时,剪切算法是否存在问题/效率低下?到目前为止,我认为我没有缩放到我从世界坐标到显示坐标的转换导致溢出。我得检查一下。如果是这种情况,我会尝试使用 Path2D.double 代替。
无论如何,任何帮助表示赞赏。我相信我最终会弄清楚这一点,但我希望遇到同样问题的人可以给我一个指点,这样就不需要很长时间才能弄清楚。
java - 将对象与曲线相交
我用 Path2D 创建了一条曲线,现在我想检测对象何时与曲线相交,而不是包含曲线的矩形。当我绘制曲线时,这条线包含在一个矩形内,但我想访问曲线的精确坐标。我真的不知道如何进行。
java - Java 自定义 Path2D
对于我正在做的一个项目,我创建了一个自定义 Path2D 类来在屏幕上绘制一个 H 形“卡尺”。我想拖动并最终调整屏幕上的卡尺大小。我已经成功设置了 Path2D,这样我就可以绘制卡尺了,代码如下所示:
声明和构造函数:
/li>build() 方法(用于绘制路径)和 setCalliper() 方法,用于重新定义坐标或宽度、高度:
/li>
我创建了一个类来在屏幕上绘制这个卡尺,它会这样做,但是如果我尝试在屏幕上拖动卡尺,它不会在我拖动时擦除原始形状,所以我得到了一长串形状被留下来。我以为我已经super.paintComponent(g)
从我的paintComponent(Graphics g)
方法中省略了,但即使有它,代码仍然不起作用。
我的拖动方法如下所示:
如果我将cal = setCalliper(calX, calY, calW, calH);
上面的行更改为 readcal = new Calliper(calX, calY, calW, calH);
那么它可以工作,但我被告知我不应该这样做。
任何想法为什么它不能按预期工作?
java - 如何反序列化 Path2D.Double 对象?
我正在尝试保存一个具有ArrayList
of的对象Connector
,这是一个扩展的类Path2D.Double
。它给了我例外gui.Connector; no valid constructor
。我做了一些研究,发现了这个:
序列化 Path2D.Double 的子类时没有有效的构造函数
它给了我一个很好的解释,但没有解决方法。有没有办法可以反序列化的子类Path2D.Double
?
svg - 在 TypeScript 项目中使用 Path2D 未解决
我想在 TypeScript 项目中使用新的Path2D api,但在 lib.es6.d.ts 中看不到它我最好的使用方法是什么?有人有 Path2D 的 d.ts 文件吗?
java - 使用路径 2d 检测坐标
我正在尝试使用提供的contains
方法来检测坐标。经过研究,我使用的代码似乎对其他人有效。但在这种情况下,我无法从我的布尔值中获得正回报,尽管它位于绘制的Path2D
多边形内。
PolygonCreation : For 循环绘制坐标包含检测坐标
鉴于这组代码,我的坐标与第一个位置的起始坐标相同,并且已被检测为错误。
链接到路径 2d 文档:
https://docs.oracle.com/javase/7/docs/api/java/awt/geom/Path2D.html
https://docs.oracle.com/javase/7/docs/api/java/awt/geom/Path2D.Double.html
java - 使用坐标和 path2d 找出一个点是否在多边形的线上
所以我使用坐标来创建一个使用 path2d 的多边形。我需要确定一个点是否正好在我创建的多边形的线上。
这是我现在的代码,它允许我找出特定坐标是否在多边形内,但如果该点正好在线,则返回 false。
如果有人能看到一个很好的解决方案,那么如果该点在线,如果它只是重新返回 true 也可以。提前致谢。