java - 如何使用 iText 绘制抛物线的一部分?或者如何从三次贝塞尔曲线创建二次贝塞尔曲线?

标签 java pdf itext formula bezier

我需要使用 iText 绘制一个形状,其边界是抛物线(即二次贝塞尔曲线)的一部分。我只找到method for drawing cubic bezier curves在 PdfContentByte 类中。

那么如何使用 iText 绘制二次贝塞尔曲线? 一种方法是使用三次贝塞尔曲线方法。是否可以将二次贝塞尔曲线绘制为三次贝塞尔曲线(具有 2 个控制点)。我猜是的,但我无法编出公式。如果有人陈述公式 tu 将三次贝塞尔曲线“转换”为二次曲线,就可以解决问题。 在 iText 中绘制二次贝塞尔曲线(抛物线的一部分)的任何其他方法(以及由它们组成的填充形状)也是解决方案。

谢谢

最佳答案

对于那些有兴趣回答的人,三次贝塞尔曲线的控制点 C1 和 C2 的公式等于带有控制点 C 的二次贝塞尔曲线:

C1 = 2/3*C + 1/3*P1
C2 = 2/3*C + 1/3*P2

其中P1、P2分别是原始二次曲线和对应的三次曲线的起点和终点。有关该主题的更多信息是 here (标题为:将二次贝塞尔曲线转换为三次贝塞尔曲线)。

还有一种使用 iText 使用 this 绘制二次贝塞尔曲线的直接方法方法。我一开始没看到...

关于java - 如何使用 iText 绘制抛物线的一部分?或者如何从三次贝塞尔曲线创建二次贝塞尔曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2751215/

相关文章:

java - 如何使用springframework BeanUtils copyProperties忽略空值?

java - 创建一个最多包含 100 个值的 java 列表

java - 从输入表单检索数据并发出 get 请求 spring mvc

java - 将 SVG 转换为 PDF

java - 使用 Itext 合并 PDF

java - Linux 上的 Gradle "cannot find Tools.jar"

java - 使用android intent从服务器打开pdf文件

firefox - Chrome 和 Firefox 不会在 iframe 中显示大多数 PDF 文档

java - 使用 iText 的 PDF 中的 HTML 表格

java - 使用itext java向pdf添加 anchor