本文整理汇总了Golang中github.com/go-gl/mathgl/mgl64.Vec2类的典型用法代码示例。如果您正苦于以下问题:Golang Vec2类的具体用法?Golang Vec2怎么用?Golang Vec2使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Vec2类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: NumSharpTurns
func NumSharpTurns(points [][2]float64) int {
arrLens := len(points) - 2
// dists := make([]float64, arrLens)
angles := make([]float64, arrLens)
for idx := 0; idx < arrLens; idx++ {
var p1, p2, p3, v1, v2 mgl64.Vec2
p1 = points[idx]
p2 = points[idx+1]
p3 = points[idx+2]
v1 = p2.Sub(p1)
v2 = p3.Sub(p2)
// dists[idx] := v1.Len()
angles[idx] = AngleBetween(v1, v2) // (radians)
}
const maxAngleChange = .4 * math.Pi
const maxDistChange = 4
numSharpTurns := 0 // sharp turn is whenn the angles add up to maxAngleChange for 4 consecutive points
for idx := 0; idx < arrLens; idx++ {
dAngle := 0.0
for count := 0; count < maxDistChange && idx < arrLens; count++ {
dAngle += angles[idx]
idx++
}
if dAngle > maxAngleChange {
numSharpTurns++
}
}
return numSharpTurns
}
开发者ID:carllindiii,项目名称:csc480-stava,代码行数:38,代码来源:numSharpTurns.go
示例2: SetPosWithExpandedPosition
func (o *OpenGlStream) SetPosWithExpandedPosition(pos mgl64.Vec2, x, y uint32) {
o.pos = pos.Add(mgl64.Vec2{float64(x * fontWidth), float64(y * fontHeight)})
o.lineStartX = pos[0]
o.advance = x
}
开发者ID:rexposadas,项目名称:Conception-go,代码行数:5,代码来源:text.go
示例3: DrawBox
func DrawBox(pos, size mgl64.Vec2, borderColor, backgroundColor mgl64.Vec3) {
DrawBorderlessBox(pos.Add(mgl64.Vec2{-1, -1}), size.Add(mgl64.Vec2{2, 2}), borderColor)
DrawBorderlessBox(pos, size, backgroundColor)
}
开发者ID:rexposadas,项目名称:gx,代码行数:4,代码来源:main.go
示例4: DrawBorderlessBox
func DrawBorderlessBox(pos, size mgl64.Vec2, backgroundColor mgl64.Vec3) {
gl.Color3dv(&backgroundColor[0])
gl.Rectd(float64(pos[0]), float64(pos[1]), float64(pos.Add(size)[0]), float64(pos.Add(size)[1]))
}
开发者ID:rexposadas,项目名称:gx,代码行数:4,代码来源:main.go
示例5: ParentToLocal
func (w *Widget) ParentToLocal(ParentPosition mgl64.Vec2) (LocalPosition mgl64.Vec2) {
return ParentPosition.Sub(w.pos)
}
开发者ID:rexposadas,项目名称:gx,代码行数:3,代码来源:widget.go
示例6: AngleBetween
func AngleBetween(v1 mgl64.Vec2, v2 mgl64.Vec2) float64 {
return math.Acos(v1.Dot(v2) / (v1.Len() * v2.Len()))
}
开发者ID:carllindiii,项目名称:csc480-stava,代码行数:3,代码来源:common.go
示例7: catmullRom
func catmullRom(p1, p2, p3, p4 mgl64.Vec2, u float64) mgl64.Vec2 {
var B mgl64.Mat4
B.Set(0, 0, 1)
B.Set(0, 1, -3)
B.Set(0, 2, 3)
B.Set(0, 3, -1)
B.Set(1, 0, 4)
B.Set(1, 1, 0)
B.Set(1, 2, -6)
B.Set(1, 3, 3)
B.Set(2, 0, 1)
B.Set(2, 1, 3)
B.Set(2, 2, 3)
B.Set(2, 3, -3)
B.Set(3, 0, 0)
B.Set(3, 1, 0)
B.Set(3, 2, 0)
B.Set(3, 3, 1)
B = B.Mul(1.0 / 6.0)
var pMat mgl64.Mat2x4
pMat.Set(0, 0, p1.X())
pMat.Set(1, 0, p1.Y())
pMat.Set(0, 1, p2.X())
pMat.Set(1, 1, p2.Y())
pMat.Set(0, 2, p3.X())
pMat.Set(1, 2, p3.Y())
pMat.Set(0, 3, p4.X())
pMat.Set(1, 3, p4.Y())
return pMat.Mul4(B).Mul4x1(mgl64.Vec4{0, 1, 2 * u, 2 * u * u})
}
开发者ID:carllindiii,项目名称:csc480-stava,代码行数:35,代码来源:sharpTurns.go
注:本文中的github.com/go-gl/mathgl/mgl64.Vec2类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论