簡體   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