请高手注释一下此函数,在此先谢了。

楼主  收藏   举报   帖子创建时间:  2019-05-05 15:19 回复:0 关注量:199


  • //+----------------------------------------------------------------------------+
  • //|  相疣戾蝠?                                                                |
  • //|    x - 爨耨桠 噌聆桉?             x[0], x[1] - 镥疴? 镳爨              |
  • //|                                    x[2], x[3] - 怛铕? 镳爨              |
  • //|    y - 爨耨桠 铕滂磬?             y[0], y[1] - 镥疴? 镳爨              |
  • //|                                    y[0], y[1] - 怛铕? 镳爨              |
  • //|    t - 爨耨桠 桉觐禧?觐铕滂磬?   t[0]       - 噌聆桉襦                   |
  • //|                                    t[1]       - 铕滂磬蜞                   |
  • //+----------------------------------------------------------------------------+
  • void CrossPointOfLines(double& x[], double& y[], double& t[]) {
  •   double z=(y[3]-y[2])*(x[1]-x[0])-(y[1]-y[0])*(x[3]-x[2]);
  •   ArrayResize(t, 2);
  •   ArrayInitialize(t, 0.0);

  •   if (z==0) Print("CrossPointOfLines(): 湾 箐嚯铖?磬轵?蝾麝?镥疱皴麇龛!");
  •   else {
  •     double xy1=x[1]*y[0]-x[0]*y[1];
  •     double xy2=x[3]*y[2]-x[2]*y[3];
  •     t[0]=NormalizeDouble((xy1*(x[3]-x[2])-xy2*(x[1]-x[0]))/z, 0);
  •     t[1]=(xy1*(y[3]-y[2])-xy2*(y[1]-y[0]))/z;
  •   }
  • }

复制代码
这是一个库里的双线交叉的函数,但有些地方还是看不懂,再加上没有主程序可看是如何调用此函数的,所以困住了,有请高手注释一下,在此先谢了。
打赏