Java 创建一个锥形笔划

Java 创建一个锥形笔划,java,graphics,drawing,awt,stroke,Java,Graphics,Drawing,Awt,Stroke,一些绘画程序,如漫画家工作室,包括逐渐变细到笔划末端的画笔。我对如何实现这一点有一些想法,但我认为这些想法存在问题/效率低下。。。我还没有通过谷歌找到关于这个任务的任何信息,所以我想在这里问一下 有人知道在AWT中创建锥形笔划的算法吗 我需要弄清楚的是如何将鼠标事件(例如(x50,y50)-(x37,y20)-(x47,y10)中已有的鼠标坐标转换为Path2D.curveTo()或类似性质的参数。你如何计算逐渐变细的笔划?(我不认为没有足够的数学知识就可以做到这一点……尽管我想我可能错了。)

一些绘画程序,如漫画家工作室,包括逐渐变细到笔划末端的画笔。我对如何实现这一点有一些想法,但我认为这些想法存在问题/效率低下。。。我还没有通过谷歌找到关于这个任务的任何信息,所以我想在这里问一下

有人知道在AWT中创建锥形笔划的算法吗

我需要弄清楚的是如何将鼠标事件(例如(x50,y50)-(x37,y20)-(x47,y10)中已有的鼠标坐标转换为Path2D.curveTo()或类似性质的参数。你如何计算逐渐变细的笔划?(我不认为没有足够的数学知识就可以做到这一点……尽管我想我可能错了。)

谢谢

编辑:请注意,允许用户使用此笔划在图像上徒手绘制,这意味着笔划的边必须弯曲以匹配用户的笔

是个不错的选择。As is实现接口,如图所示。可以应用旋转、平移或缩放对象,如图和所示。这些例子可以帮助您判断性能


附录:虽然我还没有尝试过,但这可能是旋转
多边形的合理选择。一位亲戚曾给这位尊者一个与众不同的礼物。

谢谢。不幸的是,这对我的处境没有什么帮助。这是一个允许用户在图像上徒手绘制的界面,因此笔划的边必须弯曲,这使得任何直接使用多边形都不是选项。我想我可以使用一个具有额外点的多边形作为基础,然后复制每个点,并根据下一个徒手绘制点的位置将其旋转,然后再将其添加到Path2D,但这让我回到了一开始,使用看起来非常复杂、可能效率低下的解决方案。您可以使用任何,也许是其中一条路径或曲线。问题不在于“哪些对象”。。。我已经在使用各种形状对象,并且已经使用Path2D实现了笔刷。但这并不能回答如何有效地计算/绘制笔划变细所涉及的曲线的问题。我需要的是Path2D.curveTo(x1,y1,x2,y2)——如何将鼠标坐标转换为curveTo方法中的参数?这可能不是正确的方法——可能是cubeTo或quadTo,但数学是我的挑战。谢谢你的建议,tho!:DAnything你能用什么?谢谢老兄!这正朝着正确的方向发展。。。但我现在有点累&乍一看,我不知道这些东西是否有用。。。等我睡了一会儿,我得好好看看。