首页
社区
课程
招聘
[讨论]一个点如何移动到另外一个点
发表于: 2011-1-16 01:50 5607

[讨论]一个点如何移动到另外一个点

2011-1-16 01:50
5607

大家好,我是深圳网域公司的一名程序员,最近公司准备研发一款射击游戏,我负责的项目现在遇到一个算法问题(关键是以前没接触过)...各位帮帮忙.把数学知识都搬出来吧..

三维坐标 x,y,z

现在有一个点A1(这个点始终是保持在屏幕中间)
然后例如在屏幕右上角 有另外一个点A2
请问A1如何移动到A2...这个角度是怎么计算的

大家可以参考CS这款射击游戏,A1相当于我们的准心,A2相当于敌人...
头疼啊,数学没学好``


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 43
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
貌似要用三角函数。
但问题是三角函数很慢,大多数游戏都封装了运算库。
拿商业的库做吧~
2011-1-16 07:44
0
雪    币: 185
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
A1(x,y,z)这个点  乘以 一个 矩阵 得到A2
2011-1-16 13:43
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
4
x' = x*cos q - y*sin q
y' = x*sin q + y*cos q
z' = z
2011-1-16 16:47
0
雪    币: 262
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2楼.这个矩阵公司如何算啊,我压根就没接触过矩阵
3楼版主,,,你这个公式能解释下吗?
q是不是就是偏移的角度
2011-1-16 23:10
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
画个图看看。
2011-2-23 17:55
0
雪    币: 38
活跃值: (52)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
现在有一个点A1(这个点始终是保持在屏幕中间)
然后例如在屏幕右上角 有另外一个点A2
请问A1如何移动到A2...这个角度是怎么计算的

我问你,你说了“点A1(这个点始终是保持在屏幕中间)”,你又说“请问A1如何移动到A2...”,那么A1是移动呢,还是不移动呢,你能把问题说清楚一点吗?我语文不好
2011-2-23 19:19
0
雪    币: 38
活跃值: (52)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
3d里,你要先要把A2的坐标(x,y,z)转化为屏幕的(x,y)  举个例子,这里假如你的3d坐标系统是z轴垂直于屏幕,那么 A2的(x,y,z)中的(x,y)对应于屏幕的(x,y)不需要矩阵相乘,但是A2的(x,y)是3d模型的xy,你要根据投影比例,转化成屏幕坐标。
2011-2-23 19:27
0
雪    币: 142
活跃值: (121)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
是让它自动移动到这里么?
如果不是自动移动的话在你写敌人的时候应该包含它自己的坐标点信息例如
struct badbody
{
   float x;
   float y;
   float z;
xxxxx
}
那么你在做的时候只要取A1的xyz与之相比较就可以了啊
2011-3-1 15:14
0
游客
登录 | 注册 方可回帖
返回
//