저는 Xamarin 양식을 사용하여 앱을 만들고 있습니다.Xamarin.Forms에서 SkiaSharp lib로 스플라인 (부드러운 패스)을 그립니까?
SKPath를 사용하여 부드러운 패스 (스플라인)를 그리고 싶지만, 이것을 달성 할 수있는 간단한 방법을 찾을 수 없습니다.
Skiasharp는 현재 경로를 원활하게하지 않는 이상 현재 Skiasharp에서 지원하지 않습니다.
감사합니다.
저는 Xamarin 양식을 사용하여 앱을 만들고 있습니다.Xamarin.Forms에서 SkiaSharp lib로 스플라인 (부드러운 패스)을 그립니까?
SKPath를 사용하여 부드러운 패스 (스플라인)를 그리고 싶지만, 이것을 달성 할 수있는 간단한 방법을 찾을 수 없습니다.
Skiasharp는 현재 경로를 원활하게하지 않는 이상 현재 Skiasharp에서 지원하지 않습니다.
감사합니다.
SkiaSharp는 삼차 베 지어 곡선을 지원합니다. 따라서 할 수있는 것은 스플라인을 세그먼트로 나누고 (점이 세그먼트 끝점을 결정 함) 입방 형 베 지어 곡선을 사용하여 각 세그먼트를 그립니다. 이렇게하려면 스플라인 곡선의 각 점 사이에 두 개의 제어점을 도입해야합니다. 인접한 세그먼트의 곡선이 부드럽게 연결되도록이 점을 선택해야합니다.
방금 구현했습니다. public static SKPath CreateSpline(params SKPoint[] Points)
메서드는 점 사이의 스플라인을 그리는 데 사용할 수있는 패스를 생성합니다. 현재 구현을 볼 수 있습니다
예 : 답장을
나는 당신이 물어 정확히 잘 모르겠지만,이 개 지역은 부드럽게 거기에 있습니다
안티 앨리어싱이 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/
안녕, 매튜, 감사합니다. 실제로 경로를 매끄럽게 만드는 방법을 찾고 있습니다. 네가 내가 원하는 것을 이해할 것이라고 믿는다. 네가 준 대답은 내가 찾는 것이 아니다. –
내 경로가 많은 점이 없으므로 부드러운 선이 아닙니다. 그러나 Path가 정적이 아니기 때문에 ArcTo 또는 CubicTo를 사용하여 베 지어를 만들 수는 없습니다. –
다른 플랫폼에서 이러한 기능을 제공하는 많은 그래픽 라이브러리가 있다고 생각합니다. Skiasharp 양식에서도 똑같은 것을 찾고 있습니다. –
안녕 피터, 굉장한 직업. 공유해 주셔서 감사합니다. 감사합니다. –