2010-07-08 144 views
2

我需要获得一个角度的补充。“镜像”角度

正是我需要做的是实现某种反射角度的代码,比方说,我有45度 - > 135,另一个例子:80 - > 100,0度 - > 180,依此类推。

解决:我刚才实现这一点,它完美地工作,我用180 - 角度,如果角度< 180和360 - 角度如果角度> = 180

+1

你的意思是80 - > 100? – quantumSoup 2010-07-08 13:18:45

+0

是的:) 6更多去。 – Artemix 2010-07-08 14:27:27

回答

5

我觉得你180 - yourAngle后是。

你的例子:

  • 45度:180 - 45 = 135
  • 80度:180 - 80 = 100
  • 0度:180 - 0 = 180
+0

是的,这工作正常,但是,如果我的角度是225,如果我这样做,那么我会得到180 - 225 = -45,我应该得到135. 也许我应该使用360角度,如果我的角度是> 180. – Artemix 2010-07-08 14:50:30

+0

@Artemix:所以规范化0到180之间的角度(通过加/减180,直到您介于[0,180之间)) – 2010-07-08 18:14:22

+0

是的,我知道,但我问我是否正确当myAngle> 180时,我会做360 - myAngle。 – Artemix 2010-07-08 20:22:07

1
reflected_angle = 180 - ray_angle 
2

最简单的答案,根据你出现什么要问的是

angle2 = 180 - angle1 
1

如果你查看你的“角”作为平面二维向量,您只需更改标志垂直于“镜面”平面的分量。因此,例如,在yz平面中“镜像”的45度角(1,1)变为(-1,1)。

+0

是的,这正是我首先想到的,但是当我尝试在代码上做到这一点时,发现了一些问题。事情是,我没有找到使用新组件来“重建”角度的方法。 – Artemix 2010-07-09 13:38:10

+0

发布您的代码,因为这完全正确。问题出在你的代码中。 – duffymo 2010-07-10 16:52:39

+0

如果你已经接受了答案,为什么不投票呢? – duffymo 2010-07-12 15:39:52