我做了碰撞方程
(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。有人知道为什么?是正确的吗(我做了六次)?
最佳答案
在这种情况下,您可能会将零除以零。
我建议将您的任务分解为逐步的部分,并在进行过程中检查其值(value)。
关于c++ - 帮助碰撞方程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6431563/