Canvas: Improve connection vertex logic (#87580)

Canvas: Prevent machine error causing logic swap
This commit is contained in:
Drew Slobodnjak 2024-05-09 14:38:43 -07:00 committed by GitHub
parent 979d87f46f
commit dfdf119f7f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -272,10 +272,10 @@ export const ConnectionSVG = ({
} }
// Calculate arc control points // Calculate arc control points
const lDelta = lSegment - lHalfArc; const lDelta = lSegment - lHalfArc;
xa = lDelta * Math.cos(angle1) + x1; xa = Math.round(lDelta * Math.cos(angle1) + x1);
ya = lDelta * Math.sin(angle1) + y1; ya = Math.round(lDelta * Math.sin(angle1) + y1);
xb = lHalfArc * Math.cos(angle2) + X; xb = Math.round(lHalfArc * Math.cos(angle2) + X);
yb = lHalfArc * Math.sin(angle2) + Y; yb = Math.round(lHalfArc * Math.sin(angle2) + Y);
// Check if arc control points are inside of segment, otherwise swap sign // Check if arc control points are inside of segment, otherwise swap sign
if ((xa > X && xa > x1) || (xa < X && xa < x1)) { if ((xa > X && xa > x1) || (xa < X && xa < x1)) {
@ -321,10 +321,10 @@ export const ConnectionSVG = ({
// Calculate arc control points // Calculate arc control points
const lDelta = lSegment - lHalfArc; const lDelta = lSegment - lHalfArc;
xa = lDelta * Math.cos(angle1) + Xp; xa = Math.round(lDelta * Math.cos(angle1) + Xp);
ya = lDelta * Math.sin(angle1) + Yp; ya = Math.round(lDelta * Math.sin(angle1) + Yp);
xb = lHalfArc * Math.cos(angle2) + X; xb = Math.round(lHalfArc * Math.cos(angle2) + X);
yb = lHalfArc * Math.sin(angle2) + Y; yb = Math.round(lHalfArc * Math.sin(angle2) + Y);
// Check if arc control points are inside of segment, otherwise swap sign // Check if arc control points are inside of segment, otherwise swap sign
if ((xa > X && xa > Xp) || (xa < X && xa < Xp)) { if ((xa > X && xa > Xp) || (xa < X && xa < Xp)) {