暂时存一版

This commit is contained in:
艾竹
2023-02-04 11:16:39 +08:00
parent 848121ffa2
commit 8bec9b446f
10 changed files with 151 additions and 112 deletions

View File

@@ -17,19 +17,19 @@ namespace AIStudio.Wpf.DiagramDesigner
route = GetRouteWithCurvePoints(link, route);
double sourceAngle = SourceMarkerAdjustement(route, link.GetSourceMarkerWidth());
double targetAngle = TargetMarkerAdjustement(route, link.GetSinkMarkerWidth());
double sourceAngle = SourceMarkerAdjustement(route, link.GetSourceMarkerWidth(), link.GetSourceMarkerHeight());
double targetAngle = TargetMarkerAdjustement(route, link.GetSinkMarkerWidth(), link.GetSinkMarkerHeight());
DoShift(route, link);
var path = FormattableString.Invariant($"M {route[0].X} {route[0].Y} C {route[1].X} {route[1].Y}, {route[2].X} {route[2].Y}, {route[3].X} {route[3].Y}");
return new PathGeneratorResult(new[] { path }, sourceAngle, route[0], targetAngle, route[route.Length - 1]);
return new PathGeneratorResult(new[] { path }, sourceAngle, route[0], targetAngle, route[route.Length - 1], route);
}
private static PathGeneratorResult CurveThroughPoints(PointBase[] route, ConnectionViewModel link)
{
double sourceAngle = SourceMarkerAdjustement(route, link.GetSourceMarkerWidth());
double targetAngle = TargetMarkerAdjustement(route, link.GetSinkMarkerWidth());
double sourceAngle = SourceMarkerAdjustement(route, link.GetSourceMarkerWidth(), link.GetSourceMarkerHeight());
double targetAngle = TargetMarkerAdjustement(route, link.GetSinkMarkerWidth(), link.GetSinkMarkerHeight());
BezierSpline.GetCurveControlPoints(route, out var firstControlPoints, out var secondControlPoints);
@@ -47,7 +47,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
// Todo: adjust marker positions based on closest control points
return new PathGeneratorResult(paths, sourceAngle, route[0], targetAngle, route[route.Length - 1]);
return new PathGeneratorResult(paths, sourceAngle, route[0], targetAngle, route[route.Length - 1], route);
}
private static PointBase[] GetRouteWithCurvePoints(ConnectionViewModel link, PointBase[] route)