问题标签 [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.

0 投票
1 回答
507 浏览

java - Path2D 上的鼠标指针检测

我构造了一个Path2D表示由直线组成的未闭合形状:

在此处输入图像描述

我希望能够检测何时单击鼠标并且鼠标指针靠近路径(在几个像素内)。使用该contains方法不起作用,因为该算法将未闭合的形状视为隐式闭合(即通过在起点和终点之间绘制一条直线)。

有谁知道实现这一目标的另一种机制?

0 投票
1 回答
13125 浏览

java - 如何使用 path2d 绘制多边形并查看一个点是否在其区域内?

我正在尝试使用带有 path2d 的多个顶点绘制任何类型的多边形形状,我想稍后使用 java.awt.geom.Area 查看确定点是否在其区域内

0 投票
2 回答
5431 浏览

java - JPanel 上的 Java Path2D.Double 涂有“尾巴”

在 JPanel 上绘制 Path2D 时,我有一个奇怪的行为。


正如您在此屏幕截图中看到的那样,一些形状有点像尾巴:

在此处输入图像描述

当我将类型更改为 Line2D.Double 时,正如我所期望的那样:

在此处输入图像描述

这是绘制路径/线的代码:


您知道 Screenshot1 中的“尾巴”来自哪里吗?我使用 SDK 版本 6。

非常感谢您的帮助




编辑:将代码段更改为

大多数(可能是 75%)的尾巴消失了。知道为什么会这样吗?

0 投票
1 回答
112 浏览

ios - 从没有图形上下文的 2D 点创建几何路径。在iOS中可能吗?

我需要一种方法来测试我的代码中的一些繁重的数学功能,并且已经到了需要验证此类代码是否正常工作的地步。我希望能够基于点数组创建路径,并在没有图形上下文的情况下使用该路径进行测试。

例如,Java 有各种类,例如Path2D 类,它们完全独立于任何类型的上下文或视图,除非您需要在某种图形上下文中显示信息。

看起来 Apple 没有提供任何允许您创建、操作和更改任意几何形状的方法,但我想来这里确认一下。

0 投票
1 回答
1302 浏览

java - Java Class Cast Exception java.awt.geom.Path2D.Double

I've been getting this class cast exception when trying to to implement an AffineTransform.

Call to AffineTransform:

This is resides in a custom shape class (YingYang).

When ever I make a call I get a class cast exception when I try to cast this back to a YingYang either from the drawing panel or within the class it self (if I change the return type to YingYang.

I make the call like this:

This is the error:

java.lang.ClassCastException: java.awt.geom.Path2D$Double cannot be cast to Animation.YingYang

Any ideas since YingYang implements shape one would think that I shouldn't have to cast this at all. Am I missing a key concept?

0 投票
1 回答
561 浏览

java - 让敌人以相同的速度跟随路径

我开始用java编写游戏。我有 Enemys and a Player,一个基本的 2D 游戏,这是第一次获得经验。

现在我希望敌人遵循一条路径,我可以将其绘制到“关卡编辑器”中。我有一个 JPanel,一个 mouseMoveListener,单击 Path2D 开始将 mouseMove 点保存到 Path2D.Double 对象。

之后,我实现了以下方法,让敌人沿着这条路走:

我认为现在发生的事情很清楚:敌人正在跟随,但速度是我移动鼠标的速度。因此,如果我快速移动到鼠标,敌人就会......从一个点“跳”到另一个点。放慢速度,它“偷偷摸摸”地越过这些点。(而且因为我不是机器人,我不能以相同的速度移动鼠标^^)

谈论机器人:是的,我可以让 awt.Robot 移动我的鼠标。但这也不太可能,因为我必须绘制复杂的路径,这些路径背后没有任何可见的数学。

所以,我想让这个敌人以同样的速度在这条路上前进。我的问题:我不知道在哪里实施“修复”。我有两个想法:

  • 也许我可以创建路径:不只是将点添加到 Path2D,也许我可以计算我快速移动的点之间的点,或者删除彼此靠近的点。但是:首先,我不知道如何计算,(是否有任何数学逻辑可以实现这个?)其次,当我这样做时,我可能无法改变敌人在游戏中的速度,而且会很糟糕

  • 我的第二个想法是计算之间的点(或要跳过的点),这应该发生在每一帧,相对于实际速度。但是在这里我没有足够的数学经验。

那么,这些方法是否可行,如果是,有人知道如何计算吗?而且,如果没有,我还有什么其他的可能性来实现这一目标?

谢谢,抱歉英语不好!

0 投票
2 回答
1082 浏览

java - 动画 Path2D 的绘图

我正在创建一个程序,让用户可以在屏幕上绘图,就像在 MS 绘图中使用铅笔工具一样,然后允许用户重播创建绘图的过程,就好像有人在你面前画画一样。

我使用 Path2D 完成此操作的方式,并通过 moveTo 和 lineTo 方法,使用路径绘制一条线。

我现在似乎无法弄清楚如何为 Path2D 对象的重绘设置动画。我目前的策略是创建一个新的 Path2D,并使用 PathIterator 迭代地将线段从旧路径添加到新路径。

到目前为止,这是我的想法:

主要问题是我不知道线段的大小,所以我不知道如何调整坐标数组的大小。我还没有完全弄清楚如何将这些段添加到新路径中。似乎可以使用 Path2D 中的 append 方法,尽管它似乎将整个路径添加到自身。

我意识到 Path2D 是一个形状,但我似乎找不到任何替代方法。

0 投票
2 回答
341 浏览

java - Java Graphics2D Path2D 简化或从单独的类调用

我想知道是否可以使用列表以某种方式清理我的代码或从另一个类调用它,因为我有很多精确的 Path2D 坐标,只是弄乱了我的paintComponent。

0 投票
1 回答
568 浏览

java - 如何在java中绘制自定义矩形

我要问的几乎是重复的:几乎重复

但我想在顶部制作圆角。

我试图修改查看文档的代码,但我对 Java 中的这个绘图很陌生,我没有让它工作。:/

所以我的问题是,我将如何修改它:

使圆角成为顶角。

我非常感谢所有可以帮助我的答案。

谢谢

0 投票
0 回答
61 浏览

java - AffineTransform & setClip() 问题

解决了 :

我正在制作平铺的 2d 游戏,但遇到了问题。我的游戏允许用户使用任意形状的画笔类型创建地图,该画笔类型缓存为所使用的每种油漆类型的区域。一旦我获得了给定油漆的缓存区域,我将这些区域从整个地图上每个 100 x 100 平铺的交点中分成平铺的 Path2D 形状。问题是当我在查看区域内仿射变换瓷砖并将其设置为剪辑以进行绘画时,显然形状与原来的形状被切断了。

当有运动时,结果会产生实际形状的平铺截止版本......

输出 :

向右和向下移动后的初始视图初始视图 向下和向右移动后查看

解决方案

编辑线