【问题标题】:How do I draw part of parabola using iText ? Or how do I create quadratic bezier curves from cubic bezier curves?如何使用 iText 绘制抛物线的一部分?或者如何从三次贝塞尔曲线创建二次贝塞尔曲线?
【发布时间】:2011-02-14 15:00:04
【问题描述】:
我需要使用 iText 绘制一个形状,其边界是抛物线的一部分(即二次贝塞尔曲线)。我在 PdfContentByte 类中只找到了method for drawing cubic bezier curves。
那么如何使用 iText 绘制二次贝塞尔曲线?
一种方法是使用三次贝塞尔曲线的方法。是否可以将二次贝塞尔曲线绘制为三次贝塞尔曲线(带有 2 个控制点)。我猜是这样,但我无法编造公式。如果有人陈述公式 tu 将三次贝塞尔曲线“转换”为二次曲线,这将解决问题。
在 iText 中绘制二次贝塞尔曲线(抛物线的一部分)(以及由它们制成的填充形状)的任何其他方法也是解决方案。
谢谢
【问题讨论】:
标签:
java
pdf
itext
formula
bezier
【解决方案1】:
对于那些有兴趣回答的人来说,三次贝塞尔曲线的控制点C1和C2等于控制点C的二次贝塞尔曲线的公式是:
C1 = 2/3*C + 1/3*P1
C2 = 2/3*C + 1/3*P2
其中 P1、P2 是原始二次曲线和对应三次曲线的起点和终点。有关该主题的更多信息是here(在标题下:将二次贝塞尔曲线转换为三次贝塞尔曲线)。
还有一种直接的方法是使用 iText 使用this 方法绘制二次贝塞尔曲线。只是一开始没看到……