转自:http://blog.csdn.net/dgq8211/article/details/7952825如图,如何求得直线 AB与直线 CD的交点P?以上内容摘自《算法艺术与信息学竞赛》。思路就是利用叉积求得点P分线段DC的比,然后利用高中学习的定比分点坐标公式求得分点P的坐标。看不懂的可以去...
分类:
其他好文 时间:
2014-08-29 19:56:28
阅读次数:
150
题目大意:
在平面上有一些点,每个点都有0,1其中一个属性。要求用一条直线将平面分成两部分。其中一部分取属性为0的点,另一部分取属性为1的点。若点在直线上全部取走,问最多能取多少个点。
解题思路:
扫描线算法。枚举任意一点,其他点依照那一点进行极角排序。扫描获得最大值。
注意:
1、因为 atan2方式的极角排序有精度误差,在这里需要用叉积方式排序。否则就...
分类:
其他好文 时间:
2014-08-25 21:11:44
阅读次数:
226
题意:就是判断各线段之间有没有交点。
判断两线段相交,要运用到叉积。两个线段相交肯定相互跨越,假设一个条线段(p1p2),另一条是(q1q2),那么p1p2肯定在q1q2线段的两侧,那么运用叉积如果p1p2跨越q1q2的话(q1p1)x(q2p2)《= 0.同样也要验证 q1q2是不是也跨越p1p2,注意:p1p2跨越q1q2,不代两个线段相交,可能是p1p2跨越直线q1q2,所以说还是要再次判断q1q2是不是跨越p1p2
还有另外一种比较容易理解的解法:
就是如果两个线段相交,那么两线段两端端点的差即(p...
分类:
其他好文 时间:
2014-08-21 09:51:13
阅读次数:
156
【多边形的性质】1、如果一个多边形所有内角均小于180度,则为凸(convex)多边形。凸多边形的另一定义是它的内部完全在它的任一边及其延长线的一侧。 2、给定多边形顶点,计算连续的边向量叉积,如果有些为正而另一些为负,则该多边形为凹多边形。3、通过向量分割法和旋转法可以切割凹多边形。4、奇偶性....
分类:
其他好文 时间:
2014-08-17 19:50:42
阅读次数:
306
题目链接:Intersection
判断线段与矩形的关系,与矩形相交打印T,否则打印F;
坑题,精度。。。。
思路就是,先判断 线段是否在矩形里面,再判断线段和两条对角线的关系,利用叉积模板即可
测试数据有个坑,就是 左上角的坐标并不一定比右下角的小。。。这根本不符合题意嘛
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2014-08-16 19:49:41
阅读次数:
231
解题报告
题目传送门
题意:
判断直线的位置关系(平行,重合,相交)
思路:
两直线可以用叉积来判断位置关系。
AB直线和CD直线
平行的话端点C和端点D会在直线AB的同一侧。
重合的话在直线AB上。
剩下就是相交。
求两直线交点可以用面积比和边长比来求。
看下面的图就知道了,推导就比较容易了
#include
#include
#include
...
分类:
其他好文 时间:
2014-08-14 01:38:37
阅读次数:
312
题目地址:HDU 1086
就这么一道仅仅判断线段相交的题目写了2k多B的代码。。是不是有点浪费。。。但是我觉得似乎哪里也优化不了了。。。。
判断线段相交就是利用的叉积。假如现在两条线段分别是L1和L2,先求L1和L2两个端点与L1的某个端点的向量的叉积,如果这两个的叉积的乘积小于0的话,说明L1在是在L2两个端点之间的,但此时并不保证一定相交。此时需要用同样的方法去判断L2是否在L1的两个端...
分类:
其他好文 时间:
2014-08-13 22:30:37
阅读次数:
307
在unity3d中,Vector3.Dot表示求两个向量的点积;Vector3.Cross表示求两个向量的叉积。点积计算的结果为数值,而叉积计算的结果为向量。两者要注意区别开来。在几何数学中:1.点积点积的计算方式为: a·b=|a|·|b|cos 其中|a|和|b|表示向量的模,表示两个向量的夹角...
分类:
其他好文 时间:
2014-08-13 12:33:36
阅读次数:
182
链接本来在刷hdu的一道题。。一直没过,看到谈论区发现有凹的,我这种方法只能过凸多边形的相交面积。。就找来这道题试下水。两个凸多边形相交的部分要么没有 要么也是凸多边形,那就可以把这部分单独拿出来极角排序、叉积求面积。这部分的顶点要么p在q内的顶点,要么是q在p内的顶点,要么是两凸多边形的交点。用到...
分类:
其他好文 时间:
2014-08-11 20:30:32
阅读次数:
316
题目多读几次就明白了。主要是求异面直线的距离,然后用距离和两圆半径之和作比较。空间直线的距离d=|AB*n| / |n| (AB表示异面直线任意2点的连线,n表示法向量,法向量为两条异面直线方向向量的叉积,|n|表示模。#include #include #include #include #inc...
分类:
其他好文 时间:
2014-08-08 23:43:06
阅读次数:
317