通过内联组装,我可以得到一个精确的答案: x86乘法指令可以访问产品的高部分和低部分,在计算交叉乘积(X - A) x (B -A<code>E 29</code>)时两者都很重要;我可以简单地将这两部分放在一起并测试为零同时,做这件事的一种方法是/不是:
使用更大的整数类型将doubleinvolve转换为--假设我已经使用了坐标组件类型可用的最大整数类型,则会产生假阳性或假阴性。我的噩梦场景是,我必须将每个坐标分量分成两半,并显式地进行长乘
我知道一个地理类型的有效多边形必须逆时针绘制,并且必须关闭,并且不能重叠。我很确定我正在满足所有这些限制(尽管如果我错了请纠正我),所以我在这里有点为难。但如果我把坐标改为顺时针方向:
Area area = new Area{ Boundary = new Polygon(new LinearRing(new ICoordinate[]{