大家好,我找不到任何解决方案,所以我想在论坛上提问。
在参考下图时,我有一条曲线AB,我想沿该曲线的表面镜像方向矢量dB。我只想要镜像的方向。因此,我需要使用该曲线作为轴来反映该方向。 See image
答案 0 :(得分:0)
2D曲线
假设您具有标准化切线t = normalize(a-b)
,请使用以下公式,其中·
是点积:
dA = dB - 2*t*(dB·t)
一些解释:t*(dB·t)
是切向分量。删除一次将得到法线分量,删除两次将使切线分量反转,从而产生反射向量。
3D表面
假定表面具有法线n
,请使用以下公式:
dA = -(dB - n*(dB·n)) + n*(dB·n)
,可以简化为dA = -dB + 2*n*(dB·n)
。
一些解释:n*(dB·n)
是常规组件。由于要保留它,因此我们首先将其从dB
中删除。 dB - n*(dB·n)
因此是切向分量。然后,对切向分量求反,然后将法向分量加回去以获得反射向量。