- //+----------------------------------------------------------------------------+
- //| 相疣戾蝠? |
- //| 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;
- }
- }
复制代码
这是一个库里的双线交叉的函数,但有些地方还是看不懂,再加上没有主程序可看是如何调用此函数的,所以困住了,有请高手注释一下,在此先谢了。 |