贝塞尔圆弧创建方法

01 贝塞尔圆弧创建方法

1. 参考

文章参考

  1. https://blog.csdn.net/nibiewuxuanze/article/details/48165555
  2. https://xiaochaowei.com/2022/07/20/BezierCurveFittedAnyCurve/

使用工具
https://yqnn.github.io/svg-path-editor/

2. 代码

private static void GetArc()
{
    var alpha = 20 * MathF.PI / 180;
    var beta = 80 * MathF.PI / 180;

    var h = 4 / 3 * ((1 - MathF.Cos((beta - alpha) / 2)) / MathF.Sin((beta - alpha) / 2));

    //Console.WriteLine(h);

    var a = new Vector2(MathF.Cos(alpha), MathF.Sin(alpha));
    var b = new Vector2(MathF.Cos(beta), MathF.Sin(beta));

    var d = a + new Vector2(-MathF.Sin(alpha), MathF.Cos(alpha)) * h;
    var c = b + new Vector2(MathF.Sin(beta), -MathF.Cos(beta)) * h;

    var str = $"M 0 0 L {a.X} {a.Y} C {d.X} {d.Y} {c.X} {c.Y} {b.X} {b.Y} Z";

    Console.WriteLine(str);
}
posted @ 2024-06-13 17:00  fanbal  阅读(19)  评论(0)    收藏  举报