You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算曲线的垂直偏移量?含多边形绘制场景需求

曲线垂直偏移量计算方法
  • 计算相邻点的切线方向
    对于红色曲线上的连续三点 (P_0(x_0,y_0))、(P_1(x_1,y_1))、(P_2(x_2,y_2)),先计算两段线段的向量:
    vec1 = (x₁ - x₀, y₁ - y₀)
    vec2 = (x₂ - x₁, y₂ - y₁)
    对中间点 (P_1) 的切线方向,取两段向量的和后归一化:
    tangent = normalize(vec1 + vec2)
    首尾点直接用相邻单段向量归一化作为切线方向。

  • 获取垂直法向量
    若切线向量为 ((tx, ty)),则垂直于切线的两个法向量为 ((-ty, tx)) 和 ((ty, -tx)),对应曲线的两侧偏移方向,根据你的多边形需求选择其中一个方向即可。

  • 生成偏移后的点位
    设定需要的偏移距离为 (d),则偏移后的点坐标为:
    偏移点.x = 原点点.x + d * 法向量.x
    偏移点.y = 原点点.y + d * 法向量.y
    注意所有点使用统一的偏移方向,避免最终多边形出现交叉或扭曲。

  • 可选:平滑偏移曲线
    如果偏移后的点列出现折线突兀的情况,可以对偏移点列做二次平滑处理,比如用Catmull-Rom样条插值,让最终的多边形边缘更流畅。

内容的提问来源于stack exchange,提问作者Hunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:52:03