Use constant to define offset of double-bordered shape

This commit is contained in:
OneRain2333 2023-01-22 18:21:30 +08:00
parent 9302a14e02
commit 21b84a3908
3 changed files with 7 additions and 5 deletions

View file

@ -107,7 +107,7 @@ func DoubleRect(r *Runner, shape d2target.Shape) (string, error) {
stroke: "%s", stroke: "%s",
strokeWidth: %d, strokeWidth: %d,
%s %s
});`, shape.Width-10, shape.Height-10, shape.Fill, shape.Stroke, shape.StrokeWidth, baseRoughProps) });`, shape.Width-d2target.INNER_BORDER_OFFSET*2, shape.Height-d2target.INNER_BORDER_OFFSET*2, shape.Fill, shape.Stroke, shape.StrokeWidth, baseRoughProps)
pathsSmallRect, err := computeRoughPaths(r, jsSmallRect) pathsSmallRect, err := computeRoughPaths(r, jsSmallRect)
if err != nil { if err != nil {
return "", err return "", err
@ -122,7 +122,7 @@ func DoubleRect(r *Runner, shape d2target.Shape) (string, error) {
for _, p := range pathsSmallRect { for _, p := range pathsSmallRect {
output += fmt.Sprintf( output += fmt.Sprintf(
`<path class="shape" transform="translate(%d %d)" d="%s" style="%s" />`, `<path class="shape" transform="translate(%d %d)" d="%s" style="%s" />`,
shape.Pos.X+5, shape.Pos.Y+5, p, shapeStyle(shape), shape.Pos.X+d2target.INNER_BORDER_OFFSET, shape.Pos.Y+d2target.INNER_BORDER_OFFSET, p, shapeStyle(shape),
) )
} }
output += fmt.Sprintf( output += fmt.Sprintf(
@ -169,7 +169,7 @@ func DoubleOval(r *Runner, shape d2target.Shape) (string, error) {
stroke: "%s", stroke: "%s",
strokeWidth: %d, strokeWidth: %d,
%s %s
});`, shape.Width/2, shape.Height/2, shape.Width-15, shape.Height-15, shape.Fill, shape.Stroke, shape.StrokeWidth, baseRoughProps) });`, shape.Width/2, shape.Height/2, shape.Width-d2target.INNER_BORDER_OFFSET*2, shape.Height-d2target.INNER_BORDER_OFFSET*2, shape.Fill, shape.Stroke, shape.StrokeWidth, baseRoughProps)
pathsBigCircle, err := computeRoughPaths(r, jsBigCircle) pathsBigCircle, err := computeRoughPaths(r, jsBigCircle)
if err != nil { if err != nil {
return "", err return "", err

View file

@ -824,7 +824,7 @@ func drawShape(writer io.Writer, targetShape d2target.Shape, sketchRunner *d2ske
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`, fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X+10, targetShape.Pos.Y-10, targetShape.Width, targetShape.Height, style) targetShape.Pos.X+10, targetShape.Pos.Y-10, targetShape.Width, targetShape.Height, style)
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`, fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X+15, targetShape.Pos.Y-5, targetShape.Width-10, targetShape.Height-10, style) targetShape.Pos.X+10+d2target.INNER_BORDER_OFFSET, targetShape.Pos.Y-10+d2target.INNER_BORDER_OFFSET, targetShape.Width-2*d2target.INNER_BORDER_OFFSET, targetShape.Height-2*d2target.INNER_BORDER_OFFSET, style)
} }
if sketchRunner != nil { if sketchRunner != nil {
out, err := d2sketch.DoubleRect(sketchRunner, targetShape) out, err := d2sketch.DoubleRect(sketchRunner, targetShape)
@ -836,7 +836,7 @@ func drawShape(writer io.Writer, targetShape d2target.Shape, sketchRunner *d2ske
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`, fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X, targetShape.Pos.Y, targetShape.Width, targetShape.Height, style) targetShape.Pos.X, targetShape.Pos.Y, targetShape.Width, targetShape.Height, style)
fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`, fmt.Fprintf(writer, `<rect x="%d" y="%d" width="%d" height="%d" style="%s" />`,
targetShape.Pos.X+5, targetShape.Pos.Y+5, targetShape.Width-10, targetShape.Height-10, style) targetShape.Pos.X+d2target.INNER_BORDER_OFFSET, targetShape.Pos.Y+d2target.INNER_BORDER_OFFSET, targetShape.Width-2*d2target.INNER_BORDER_OFFSET, targetShape.Height-2*d2target.INNER_BORDER_OFFSET, style)
} }
} }
} }

View file

@ -28,6 +28,8 @@ const (
var BorderOffset = geo.NewVector(5, 5) var BorderOffset = geo.NewVector(5, 5)
const INNER_BORDER_OFFSET = 5
type Diagram struct { type Diagram struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description,omitempty"` Description string `json:"description,omitempty"`