如果我有一个三角形并且我要向三角形的一边绘制一条线,我将如何创建当该线击中Maple三角形边时的反射线。我只是在油漆中快速绘制(因此不准确)。有没有办法在枫树做到这一点。谢谢 我目前有,
with(plots):
with(plottools):
a:=polygon([[0,0],[2,0],[1,2]]):
b:=polygon([[2,0],[4,0],[3,2]]):
e:=line([2.5,2],[2.5,1]):
f:=line([2.5,1],[1.72,0.484]):
display(a,b,e,f);
答案 0 :(得分:1)
让我们的开始方向是矢量 Dir (dir.x, dir.y)
,反射的一侧有单位正常 N (n.x, n.y)
反射后,矢量的切向分量反转,正常分量保持不变。我们可以使用下面的公式来计算新的方向:
dot = dir.x * n.x + dir.y * n.y
//after reflection
newdir.x = dir.x - 2 * dot * n.x
newdir.y = dir.y - 2 * dot * n.y
应用此类转换以从左右三角形边获得一系列反射(使用相应的法线)