当前位置: 首页>>代码示例>>Golang>>正文


Golang Mat4.RotationY方法代码示例

本文整理汇总了Golang中github.com/runningwild/mathgl.Mat4.RotationY方法的典型用法代码示例。如果您正苦于以下问题:Golang Mat4.RotationY方法的具体用法?Golang Mat4.RotationY怎么用?Golang Mat4.RotationY使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/runningwild/mathgl.Mat4的用法示例。


在下文中一共展示了Mat4.RotationY方法的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
}
开发者ID:hilerchyn,项目名称:haunts,代码行数:53,代码来源:room_viewer.go


注:本文中的github.com/runningwild/mathgl.Mat4.RotationY方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。