improve:墨迹平滑方案

This commit is contained in:
2025-07-20 19:17:32 +08:00
parent da86f07cbe
commit 4a776c1fe8
7 changed files with 85 additions and 825 deletions
+1 -49
View File
@@ -1310,49 +1310,7 @@ namespace Ink_Canvas {
SaveSettingsToFile();
}
private void AdvancedSmoothingStrengthSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
if (!isLoaded) return;
Settings.Canvas.AdvancedSmoothingStrength = AdvancedSmoothingStrengthSlider.Value;
SaveSettingsToFile();
}
private void AdvancedSmoothingTensionSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
if (!isLoaded) return;
Settings.Canvas.AdvancedSmoothingTension = AdvancedSmoothingTensionSlider.Value;
SaveSettingsToFile();
}
private void ToggleSwitchEnableAdaptiveSmoothing_Toggled(object sender, RoutedEventArgs e) {
if (!isLoaded) return;
Settings.Canvas.EnableAdaptiveSmoothing = ToggleSwitchEnableAdaptiveSmoothing.IsOn;
SaveSettingsToFile();
}
private void ShakeCorrectionStrengthSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
if (!isLoaded) return;
Settings.Canvas.ShakeCorrectionStrength = ShakeCorrectionStrengthSlider.Value;
SaveSettingsToFile();
}
private void VelocityWeightedSmoothingStrengthSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
if (!isLoaded) return;
Settings.Canvas.VelocityWeightedSmoothingStrength = VelocityWeightedSmoothingStrengthSlider.Value;
SaveSettingsToFile();
}
private void TimeWeightedSmoothingStrengthSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
if (!isLoaded) return;
Settings.Canvas.TimeWeightedSmoothingStrength = TimeWeightedSmoothingStrengthSlider.Value;
SaveSettingsToFile();
}
private void CornerSmoothingStrengthSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
if (!isLoaded) return;
Settings.Canvas.CornerSmoothingStrength = CornerSmoothingStrengthSlider.Value;
SaveSettingsToFile();
}
private void ToggleSwitchAutoSaveStrokesInPowerPoint_Toggled(object sender, RoutedEventArgs e) {
if (!isLoaded) return;
Settings.PowerPointSettings.IsAutoSaveStrokesInPowerPoint = ToggleSwitchAutoSaveStrokesInPowerPoint.IsOn;
@@ -1655,12 +1613,6 @@ namespace Ink_Canvas {
Settings.Canvas.ClearCanvasAndClearTimeMachine = false;
Settings.Canvas.FitToCurve = false;
Settings.Canvas.UseAdvancedBezierSmoothing = true;
Settings.Canvas.AdvancedSmoothingStrength = 0.4;
Settings.Canvas.AdvancedSmoothingTension = 0.3;
Settings.Canvas.EnableAdaptiveSmoothing = true;
Settings.Canvas.ShakeCorrectionStrength = 0.6;
Settings.Canvas.VelocityWeightedSmoothingStrength = 0.7;
Settings.Canvas.TimeWeightedSmoothingStrength = 0.5;
Settings.Canvas.EnablePressureTouchMode = false;
Settings.Canvas.DisablePressure = false;
Settings.Canvas.AutoStraightenLine = true;
@@ -537,13 +537,6 @@ namespace Ink_Canvas {
ToggleSwitchAdvancedBezierSmoothing.IsOn = false;
drawingAttributes.FitToCurve = false;
}
AdvancedSmoothingStrengthSlider.Value = Settings.Canvas.AdvancedSmoothingStrength;
AdvancedSmoothingTensionSlider.Value = Settings.Canvas.AdvancedSmoothingTension;
ToggleSwitchEnableAdaptiveSmoothing.IsOn = Settings.Canvas.EnableAdaptiveSmoothing;
ShakeCorrectionStrengthSlider.Value = Settings.Canvas.ShakeCorrectionStrength;
VelocityWeightedSmoothingStrengthSlider.Value = Settings.Canvas.VelocityWeightedSmoothingStrength;
TimeWeightedSmoothingStrengthSlider.Value = Settings.Canvas.TimeWeightedSmoothingStrength;
CornerSmoothingStrengthSlider.Value = Settings.Canvas.CornerSmoothingStrength;
// 初始化直线自动拉直相关设置
ToggleSwitchAutoStraightenLine.IsOn = Settings.Canvas.AutoStraightenLine;
@@ -1597,14 +1597,6 @@ namespace Ink_Canvas {
{
var advancedSmoothing = new Helpers.AdvancedBezierSmoothing
{
SmoothingStrength = Settings.Canvas.AdvancedSmoothingStrength,
Tension = Settings.Canvas.AdvancedSmoothingTension,
EnableAdaptiveSmoothing = Settings.Canvas.EnableAdaptiveSmoothing,
ShakeCorrectionStrength = Settings.Canvas.ShakeCorrectionStrength,
VelocityWeightedSmoothingStrength = Settings.Canvas.VelocityWeightedSmoothingStrength,
TimeWeightedSmoothingStrength = Settings.Canvas.TimeWeightedSmoothingStrength,
CornerSmoothingStrength = Settings.Canvas.CornerSmoothingStrength,
PixelLevelPrecision = Settings.Canvas.PixelLevelPrecision
};
// 对临时笔画应用平滑
@@ -589,14 +589,6 @@ namespace Ink_Canvas {
{
var advancedSmoothing = new Helpers.AdvancedBezierSmoothing
{
SmoothingStrength = Settings.Canvas.AdvancedSmoothingStrength,
Tension = Settings.Canvas.AdvancedSmoothingTension,
EnableAdaptiveSmoothing = Settings.Canvas.EnableAdaptiveSmoothing,
ShakeCorrectionStrength = Settings.Canvas.ShakeCorrectionStrength,
VelocityWeightedSmoothingStrength = Settings.Canvas.VelocityWeightedSmoothingStrength,
TimeWeightedSmoothingStrength = Settings.Canvas.TimeWeightedSmoothingStrength,
CornerSmoothingStrength = Settings.Canvas.CornerSmoothingStrength,
PixelLevelPrecision = Settings.Canvas.PixelLevelPrecision
};
var smoothedStroke = advancedSmoothing.SmoothStroke(e.Stroke);