本文整理汇总了Golang中github.com/runningwild/mathgl.Mat4.RotationX方法的典型用法代码示例。如果您正苦于以下问题:Golang Mat4.RotationX方法的具体用法?Golang Mat4.RotationX怎么用?Golang Mat4.RotationX使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/runningwild/mathgl.Mat4
的用法示例。
在下文中一共展示了Mat4.RotationX方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: makeRoomMats
func makeRoomMats(room *roomDef, region gui.Region, focusx, focusy, angle, zoom float32) (floor, ifloor, left, ileft, right, iright mathgl.Mat4) {
var m mathgl.Mat4
floor.Translation(float32(region.Dx/2+region.X), float32(region.Dy/2+region.Y), 0)
// NOTE: If we want to change 45 to *anything* else then we need to do the
// appropriate math for rendering quads for furniture
m.RotationZ(45 * math.Pi / 180)
floor.Multiply(&m)
m.RotationAxisAngle(mathgl.Vec3{X: -1, Y: 1}, -float32(angle)*math.Pi/180)
floor.Multiply(&m)
s := float32(zoom)
m.Scaling(s, s, s)
floor.Multiply(&m)
// Move the viewer so that the focus is at the origin, and hence becomes centered
// in the window
m.Translation(-focusx, -focusy, 0)
floor.Multiply(&m)
ifloor.Assign(&floor)
ifloor.Inverse()
// Also make the mats for the left and right walls based on this mat
left.Assign(&floor)
m.RotationX(-math.Pi / 2)
left.Multiply(&m)
m.Translation(0, 0, float32(room.Size.Dy))
left.Multiply(&m)
ileft.Assign(&left)
ileft.Inverse()
right.Assign(&floor)
m.RotationX(-math.Pi / 2)
right.Multiply(&m)
m.RotationY(-math.Pi / 2)
right.Multiply(&m)
m.Scaling(1, 1, 1)
right.Multiply(&m)
m.Translation(0, 0, -float32(room.Size.Dx))
right.Multiply(&m)
swap_x_y := mathgl.Mat4{
0, 1, 0, 0,
1, 0, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1,
}
right.Multiply(&swap_x_y)
iright.Assign(&right)
iright.Inverse()
return floor, ifloor, left, ileft, right, iright
}