繁体   English   中英

在Xamarin.Forms上使用SkiaSharp lib绘制样条曲线(平滑路径)?

[英]Draw spline(smooth path) with SkiaSharp lib on Xamarin.Forms?

我正在使用Xamarin表单制作应用程序。

我想使用SKPath绘制一条平滑的路径(样条线),但是我找不到实现此目的的简单方法。

Skiasharp当前不支持它,除非我自己顺利进行操作。

谢谢。

我不确定您要问的是什么,但是有两个方面可以解决:

使用SKPaint.IsAntialias的抗锯齿:

var paint = new SKPaint {
    IsAntialias = true
};
canvas.DrawPath (path, paint);

路径曲线:

如果您需要路径中的曲线(例如圆角),则需要使用各种曲线方法。 这些包括但不限于SKPath.ArcTo()'SKPath.CubicTo()

var path = new SKPath();
path.MoveTo(10, 10);
path.ArcTo(SKRect.Create(10, 10, 30, 30), 0, 45);

路径文档: https//developer.xamarin.com/api/type/SkiaSharp.SKPath/

SkiaSharp支持三次贝塞尔曲线。 因此,您可以做的是,将样条曲线划分为段(点确定段端点),然后使用三次贝塞尔曲线绘制每个段。 为此,您需要在样条曲线的每个点之间引入两个控制点。 需要选择这些点,以使相邻线段中的曲线平滑连接。

我只是做了一个实现。 public static SKPath CreateSpline(params SKPoint[] Points)方法生成一条路径,可用于在点之间绘制样条线。 您可以在此处查看实现:

https://github.com/PeterWaher/IoTGateway/blob/master/Script/Waher.Script.Graphs/Functions/Plots/Plot2DCurve.cs

例:

样条线示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM