fix: 3d lyrics effect incorrect y center

This commit is contained in:
Zhe Fang
2025-12-17 20:22:26 -05:00
parent 619a3ba196
commit d0991c5ddb
2 changed files with 6 additions and 3 deletions

View File

@@ -548,11 +548,12 @@ namespace BetterLyrics.WinUI3.Controls
_isMouseScrollingChanged = false;
_lyricsRenderer.CalculateLyrics3DMatrix(
lyricsStyle: lyricsStyle,
lyricsEffect: lyricsEffect,
lyricsX: _renderLyricsStartX,
lyricsY: _renderLyricsStartY,
lyricsWidth: _renderLyricsWidth,
canvasHeight: sender.Size.Height
lyricsHeight: _renderLyricsHeight
);
_isLayoutChanged = false;

View File

@@ -233,13 +233,15 @@ namespace BetterLyrics.WinUI3.Renderer
catch (Exception) { }
}
public void CalculateLyrics3DMatrix(LyricsEffectSettings lyricsEffect, double lyricsX, double lyricsY, double lyricsWidth, double canvasHeight)
public void CalculateLyrics3DMatrix(LyricsStyleSettings lyricsStyle, LyricsEffectSettings lyricsEffect, double lyricsX, double lyricsY, double lyricsWidth, double lyricsHeight)
{
if (!lyricsEffect.Is3DLyricsEnabled) return;
var playingLineTopOffsetFactor = lyricsStyle.PlayingLineTopOffset / 100.0;
Vector3 center = new(
(float)(lyricsX + lyricsWidth / 2),
(float)(lyricsY + canvasHeight / 2),
(float)(lyricsY + lyricsHeight * playingLineTopOffsetFactor / 2),
0);
float rotationX = (float)(Math.PI * lyricsEffect.Lyrics3DXAngle / 180.0);