创建一个锥形笔划

时间:2011-09-14 16:09:40

标签: java graphics drawing awt stroke

像漫画工作室这样的一些绘画程序包括逐渐缩小到笔画末端点的画笔。关于如何实现这一点,我有一些想法,但我对我的想法似乎有问题/效率低......我无法通过Google找到有关此任务的任何信息,所以我想在这里问一下。

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

我需要弄清楚的是如何将鼠标事件中已有的鼠标坐标(例如(x50,y50) - (x37,y20) - (x47,y10)转换为Path2D.curveTo()的参数或这种性质的东西。你如何做中风逐渐减量的数学计算? (我不认为没有相当数量的数学就没有办法做到这一点......虽然我想我可能是错的。)

谢谢!

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

1 个答案:

答案 0 :(得分:1)

Polygon是个不错的选择。正如实现Shape界面一样,createStrokedShape()可用,如图here所示。可以应用AffineTransform来旋转,翻译或缩放对象,如herehere所示。这些例子可以帮助您判断表现。

附录:虽然我没有尝试过,Arc2D可能是轮换Polygon的合理替代方案。相关的QuickDraw primitive曾为尊敬的MacDraw提供了独特的shape for arrowheads