Graphics 如何描述脂肪曲线(变厚度曲线)?

Graphics 如何描述脂肪曲线(变厚度曲线)?,graphics,curve,bezier,Graphics,Curve,Bezier,我知道如何描述恒定厚度的曲线(使用贝塞尔或类似模型) 有没有变厚度曲线的通用模型 我在想象一些类似的事情,比如贝塞尔。例如,每个节点都可以包含厚度值及其权重,所以渲染器将沿曲线插值厚度 是否有一些实现和/或描述 更新 更确切地说,问题如下 假设我们有三次贝塞尔线段,由4个点控制 在贝塞尔曲线中,向量越长,比如说AB,那么沿着AB方向的曲线就越长。在上图中,我们有相当长的关注时间 因此,我希望thinkness与控制节点B和C同步运行。如果AB和CD是长的,那么thinkness应该跟随末端节点

我知道如何描述恒定厚度的曲线(使用贝塞尔或类似模型)

有没有变厚度曲线的通用模型

我在想象一些类似的事情,比如贝塞尔。例如,每个节点都可以包含厚度值及其权重,所以渲染器将沿曲线插值厚度

是否有一些实现和/或描述

更新

更确切地说,问题如下

假设我们有三次贝塞尔线段,由4个点控制

在贝塞尔曲线中,向量越长,比如说AB,那么沿着AB方向的曲线就越长。在上图中,我们有相当长的关注时间

因此,我希望thinkness与控制节点B和C同步运行。如果AB和CD是长的,那么thinkness应该跟随末端节点thinkness long并快速更改为另一个厚度,如下所示

若控制向量很短,那个么思维应该平稳地从一个变为另一个,如下所示

及其继任者 以成型笔的形式支撑可变厚度

另见

L.M.Mestetskii,《平面图形的Fat曲线和表示法》,计算机与图形学,24:1(2000)9-21 doi:

如果要使用“基于光盘”的方法,则需要围绕每个控制点绘制圆,然后在这些圆上找到表示“偏移”的点(切线法线,对于曲线上的点,投影切线法线,对于曲线外的点)。然后将这些新点插入Bezier函数以获得“偏移曲线”


在可变宽度的情况下,曲线偏移本质上是查找轮廓而不是单个曲线的技巧。对于Bezier曲线,您可以在at上找到完整的解释,在at上有可变宽度的解释(您对后者感兴趣,但在查看特例之前需要了解基本知识=)

查找轮廓是第二步。目前我不知道如何表示曲线本身。将半径指定给每个Bezier控制点看起来太平滑了…您可以在每个点处将曲线分割成一个多边形Bezier,在每个点上,您希望以不同的方式改变宽度,然后将每个线段分开偏移并插值接缝。我希望对一个Bezier线段进行最简单的描述,像二次或三次段。你的新编辑是一种完全不同的描述你想要什么,并涵盖在我给的文章链接。你能给出更准确的答案吗?在结构中存储哪些数据来描述fat段?你的第一段说给每个控制点指定半径,每个立方段有4个半径,而我预计每个立方段只有2个半径。