2011-04-27 08:06:14 +00:00
|
|
|
// Copyright 2010 The draw2d Authors. All rights reserved.
|
|
|
|
// created: 13/12/2010 by Laurent Le Goff
|
2012-04-17 09:03:56 +00:00
|
|
|
|
2011-04-27 08:06:14 +00:00
|
|
|
package draw2d
|
|
|
|
|
|
|
|
import (
|
|
|
|
"math"
|
|
|
|
)
|
|
|
|
|
|
|
|
//high level path creation
|
|
|
|
|
2015-04-23 16:12:31 +00:00
|
|
|
func Rect(path PathBuilder, x1, y1, x2, y2 float64) {
|
2011-04-27 08:06:14 +00:00
|
|
|
path.MoveTo(x1, y1)
|
|
|
|
path.LineTo(x2, y1)
|
|
|
|
path.LineTo(x2, y2)
|
|
|
|
path.LineTo(x1, y2)
|
|
|
|
path.Close()
|
|
|
|
}
|
|
|
|
|
2015-04-23 16:12:31 +00:00
|
|
|
func RoundRect(path PathBuilder, x1, y1, x2, y2, arcWidth, arcHeight float64) {
|
2011-04-27 08:06:14 +00:00
|
|
|
arcWidth = arcWidth / 2
|
|
|
|
arcHeight = arcHeight / 2
|
|
|
|
path.MoveTo(x1, y1+arcHeight)
|
|
|
|
path.QuadCurveTo(x1, y1, x1+arcWidth, y1)
|
|
|
|
path.LineTo(x2-arcWidth, y1)
|
|
|
|
path.QuadCurveTo(x2, y1, x2, y1+arcHeight)
|
|
|
|
path.LineTo(x2, y2-arcHeight)
|
|
|
|
path.QuadCurveTo(x2, y2, x2-arcWidth, y2)
|
|
|
|
path.LineTo(x1+arcWidth, y2)
|
|
|
|
path.QuadCurveTo(x1, y2, x1, y2-arcHeight)
|
|
|
|
path.Close()
|
|
|
|
}
|
|
|
|
|
2015-04-23 16:12:31 +00:00
|
|
|
func Ellipse(path PathBuilder, cx, cy, rx, ry float64) {
|
2011-04-27 08:06:14 +00:00
|
|
|
path.ArcTo(cx, cy, rx, ry, 0, -math.Pi*2)
|
|
|
|
path.Close()
|
|
|
|
}
|
|
|
|
|
2015-04-23 16:12:31 +00:00
|
|
|
func Circle(path PathBuilder, cx, cy, radius float64) {
|
2011-04-27 08:06:14 +00:00
|
|
|
path.ArcTo(cx, cy, radius, radius, 0, -math.Pi*2)
|
|
|
|
path.Close()
|
|
|
|
}
|