游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3606|回复: 8

三维坐标问题,已知:x轴和y轴角度以及点到原点的长度。

[复制链接]

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2008-2-23 18:03:00 | 显示全部楼层 |阅读模式
求z轴的长度

x轴=cos(x)*s
y轴=cos(y)*s
z轴=?

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2008-2-23 23:19:00 | 显示全部楼层

Re:三维坐标问题,已知:x轴和y轴角度以及点到原点的长

y= r*sin(alpha)
z= -r*cos(alpha)*cos(beta)
x= -r*cos(alpha)*sin(beta)

大概可能是这样,仅供参考……

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2008-2-24 10:36:00 | 显示全部楼层

Re: 三维坐标问题,已知:x轴和y轴角度以及点到原点的长

楼上的能说一说怎么推导出来的吗?

简单做了一个图。

会有点直观的感觉
sf_2008224103542.jpg

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2008-2-24 13:15:00 | 显示全部楼层

Re: 三维坐标问题,已知:x轴和y轴角度以及点到原点的长

首先要说的是,你的问题应该用标准的数学语言来叙述:
已知一个向量a与x轴夹角为α,与y轴夹角为β,|a|等于s。
a的z轴分量。

你的x轴分量和y轴分量求解正确,
这样的话既然|a| = s,
ax^2 + ay^2 + az^2 = s^2,
其中ax和ay已经求得,az也就可以求了嘛。

要注意,z轴分量是双解,不过你要是只关心“长度”的话就是一个解了。

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2008-2-24 14:40:00 | 显示全部楼层

Re: Re: 三维坐标问题,已知:x轴和y轴角度以及点到原点的

睿星: Re: 三维坐标问题,已知:x轴和y轴角度以及点到原点的长度。

首先要说的是,你的问题应该用标准的数学语言来叙述:
已知一个向量a与x轴夹角为α,与y轴夹角为β...


设x=y=z=1,

那么s=sqr(2);
α=45,β=45,γ=45

ax^2 + ay^2 + az^2 = s^2

ax^2 + ay^2 + az^2 = sqr(2)^2 = 2

其中ax^2 ay^2 az^2 各是什么?

0

主题

113

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2008-2-24 19:27:00 | 显示全部楼层

Re:三维坐标问题,已知:x轴和y轴角度以及点到原点的长

ax^2 ay^2 az^2
表示: ax的平方 ay的平方 az的平方
BASIC语言就是用 ^ 表示乘方.

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2008-2-24 21:03:00 | 显示全部楼层

Re:三维坐标问题,已知:x轴和y轴角度以及点到原点的长

就是没明白是(ax)^2 还是a(x^2)

现在应该是(ax)^2 哦

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2008-2-24 21:57:00 | 显示全部楼层

Re:三维坐标问题,已知:x轴和y轴角度以及点到原点的长

好像不正确阿

按照公式 zyx=1

可是,代入公式

ax^2 + ay^2 + az^2 = s^2
很明显 3(a^2)不等于s^2

这个公式是否错误?

4

主题

69

帖子

205

积分

中级会员

Rank: 3Rank: 3

积分
205
发表于 2008-2-27 13:32:00 | 显示全部楼层

Re:三维坐标问题,已知:x轴和y轴角度以及点到原点的长

Pitch    //  斜度,即水平方向的旋转量
Yaw      //  偏航,即垂直方向的旋转量
Distance //  视点到目标点的距离
左手坐标系:
x = Distance * sin(Yaw) * cos(Pitch);
y = Distance * sin(Pitch);
z = Distance * cos(Yaw) * cos(Pitch);
右手坐标系:
x = Distance * cos(Pitch) * cos(Yaw);
y = Distance * cos(Pitch) * sin(Yaw);
z = Distance * sin(Pitch);

推导过程只要把图画出来一看就清楚了,一时半会还真不知道拿什么工具画个图,当时我是拿着个方盒子比划半天搞清楚的。现在这几个公式就用在一个观察模型的Camera中。希望对你有所帮助
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 06:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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