帮助碰撞方程

问题描述

| 我做了碰撞方程 (col和cold是线-> x和-> y是起点,h()和w()是高度和宽度)。 o&z未知。
    col->x+(col->w())*o=cold->x+(cold->w())*z;
     col->y+(col->h())*o=cold->y+(cold->h())*z;
解决了:
z=(cold->y-col->y-col->h()/col->w()* (cold->x-col->x))/(col->h()/col->w()*cold->w() - cold->h());
o=(cold->x+cold->w()*z-col->x)/col->w();
它工作正常(?不确定),但是如果其中一条线是垂直或水平的,我到处都会看到NaN。有人知道为什么?是正确的吗(我做了六次)?     

解决方法

        在这种情况下,您可能会将零除以零。 我建议将您的任务分解为逐步的部分,并在进行过程中检查其价值。     ,        您可能做错了。但是,这很难说,因为您显然无法告诉我们您正在尝试做什么。哦,如果您做错了,但是如果您做错了六次,那还是错的。我发现,一次正确地执行操作是迄今为止的最佳方法。     ,        使用Mathematica(我很懒),我得到: 如果coldw colh = coldh colw或coldh / coldw = colh / colw,即当两个斜率相等时(换句话说,当两条线平行时),这应该为您除以零。