SkiaSharp icon indicating copy to clipboard operation
SkiaSharp copied to clipboard

[BUG] Horizontal lines disappear when zoomed in

Open afcsoft opened this issue 9 months ago • 1 comments

Description

resim resim Horizontal lines disappear when zoomed in using Matrix. Stroke width is irrelevant. Anti-aliasing helps to some extent but problem still pursue.

Code

// Matrix code
        var zoom = (float)skiaRenderer.Viewport.SceneZ;
        var dpi = 1.5f;

        var drawMatrix = SKMatrix.CreateScale((float)zoom, -(float)zoom);

        var halfScaledWidth = (float)canvas.ActualWidth * 0.5f;
        var halfScaledHeight = (float)canvas.ActualHeight * 0.5f;

        var actualX = -(float)skiaRenderer.Viewport.SceneX * zoom + (halfScaledWidth * dpi);
        var actualY = (float)skiaRenderer.Viewport.SceneY * zoom + (halfScaledHeight * dpi);

        drawMatrix.TransX = actualX;
        drawMatrix.TransY = actualY;

        e.Surface.Canvas.SetMatrix(drawMatrix);      
// Line drawing code
_paint.Color.WithAlpha(255);
_paint.IsAntialias = true;
_paint.StrokeWidth = (float)(1.5 / _viewport.SceneZ);
_paint.StrokeCap = SKStrokeCap.Round;
_paint.IsStroke = true;
surface.Canvas.DrawLine((float)line.Object.Coor.Y, (float)line.Object.Coor.X, (float)line.Coord.Y, (float)line.Coord.X, _paint);

Expected Behavior

No response

Actual Behavior

No response

Version of SkiaSharp

2.88.3 (Current)

Last Known Good Version of SkiaSharp

Other (Please indicate in the description)

IDE / Editor

Visual Studio (Windows)

Platform / Operating System

All

Platform / Operating System Version

No response

Devices

No response

Relevant Screenshots

No response

Relevant Log Output

No response

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

afcsoft avatar May 12 '24 14:05 afcsoft