Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Horizontal lines disappear when zoomed in #2856

Open
1 task done
afcsoft opened this issue May 12, 2024 · 1 comment
Open
1 task done

[BUG] Horizontal lines disappear when zoomed in #2856

afcsoft opened this issue May 12, 2024 · 1 comment
Labels

Comments

@afcsoft
Copy link

afcsoft commented May 12, 2024

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

  • I agree to follow this project's Code of Conduct
@angelofb
Copy link

I have the same problem

if you can use 1 pixel width stroke then you can set hairline mode with StrokeWidth = 0
https://learn.microsoft.com/en-us/dotnet/api/skiasharp.skpaint.strokewidth?view=skiasharp-2.88#remarks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants