游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3321|回复: 5

如何将两个立方体象一个整体一样转动

[复制链接]

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2006-3-3 21:36:00 | 显示全部楼层 |阅读模式
请问达者:
如何将两个立方体象一个整体一样转动,而不是独立的转动

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2006-3-3 23:57:00 | 显示全部楼层

Re:如何将两个立方体象一个整体一样转动

但如何使用同一个坐标系?我是一个刚用DX9 SDK的菜鸟,请教该如何改动下面的代码:

Mesh mesh1 = Mesh.Box(device, 1.0f, 1.0f, 1.0f);
Mesh mesh2 = Mesh.Box(device, 1.0f, 1.0f, 1.0f);

//转动第一个立方体
device.Transform.World = Matrix.RotationYawPitchRoll(xAngle, yAngle, zAngle) * Matrix.Translation(new Vector3(0.0f, 0.0f, 0.0f));
mesh1.DrawSubset(0);

//转动第二个立方体
device.Transform.World = Matrix.RotationYawPitchRoll(xAngle, yAngle, zAngle) * Matrix.Translation(new Vector3(1.01f, 0.0f, 0.0f));
mesh2.DrawSubset(0);



以上的结果就是这两个立方体各自按自己的轴在转,而不是象一个整体在转

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2006-3-12 12:03:00 | 显示全部楼层

Re:如何将两个立方体象一个整体一样转动

爱心骑士:
老兄你这个方法不行哟,这样变成是一个立方体和一个长方体重叠在一起,
虽然我说的是两个立方体象一个整体一样的转动,但实际上我想要的就象是:
在一个房间里的所有东西,在转动房子时也跟着一起转动,而不是房子里面的东西也在自转!

0

主题

4

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2006-3-14 13:48:00 | 显示全部楼层

Re:如何将两个立方体象一个整体一样转动

首先针对各自的位置做个Translation变换,然后再使用同一个变换即可.

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2006-3-15 00:35:00 | 显示全部楼层

Re:如何将两个立方体象一个整体一样转动

i_single,
能不能给出几行代码,谢谢

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2006-3-15 01:18:00 | 显示全部楼层

Re:如何将两个立方体象一个整体一样转动

我想了很久,终于搞定了:

device.Transform.World = Matrix.RotationYawPitchRoll(this.xAngle, this.yAngle, this.zAngle);

mesh1.DrawSubset(0);

device.Transform.World = Matrix.RotationYawPitchRoll(this.xAngle, this.yAngle, this.zAngle) * Matrix.Translation(1.01f * (float)Math.Cos(xAngle), 0.0f, -1.01f * (float)Math.Sin(xAngle));

mesh2.DrawSubset(0);

非常感谢大家的支持,
另外还有一个问题:我有一个立方体,去掉相邻的三面,如何将光照投射到开口之后的立方体里面去?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 22:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表