游戏开发论坛

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

屏幕上一个点,绕着另一个点,如何描述?

[复制链接]

77

主题

485

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
发表于 2011-2-2 13:50:00 | 显示全部楼层 |阅读模式
点A(10,10)绕着点B(5,5),屏幕坐标起点(0,0),进行旋转.

数学坐标系是Y轴向上是正的,屏幕的坐标系是Y轴向下是正的.

将屏幕上的点,转化为数学坐标系上的点,然后旋转.
旋转之后,再将数学坐标系上的点,转[来源:GameRes.com]换成屏幕上的点,进行绘制.



'一个点围着中心进行旋转,旋转之后那个点的坐标
Public Function RotateCenter(Center As D3DVECTOR2, _
            RotatePoint As D3DVECTOR2, ByVal RotateRange As Single) As D3DVECTOR2
'这里应该想什么?


End Function

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
发表于 2011-2-2 15:45:00 | 显示全部楼层

Re:屏幕上一个点,绕着另一个点,如何描述?

表达不清 , 你是想要  ,运动轨迹  还是最终坐标?
如果是函数的使用指南, 百度就好 。

77

主题

485

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
 楼主| 发表于 2011-2-2 16:38:00 | 显示全部楼层

Re:屏幕上一个点,绕着另一个点,如何描述?

得到旋转后,那个点的坐标.

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2011-2-3 17:26:00 | 显示全部楼层

Re:屏幕上一个点,绕着另一个点,如何描述?

通常的旋转矩阵是绕(齐次)坐标系的原点的旋转。
为了实现绕任意点的旋转,需要进行坐标系变换,或者是平移图形

12

主题

423

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
发表于 2011-2-10 15:35:00 | 显示全部楼层

Re:屏幕上一个点,绕着另一个点,如何描述?

屏幕上的点是2D的吧?
算出直线
旋转角度
用cos和sin相乘就可以了

30

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2011-2-14 13:49:00 | 显示全部楼层

Re:屏幕上一个点,绕着另一个点,如何描述?

B点为原点,算出BA之间的角度C,AB长度为D。那么代码如下:
   
   C=C+1
   IF C=360 THEN C=1
   X=D*SIN(C)
   Y=D*COS(C)
X,Y就是下一步A点的坐标
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-6 11:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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