GIS开发:分享常用的gis算法(C#)

在系统开发中,有时会用到一些常用的空间算法,引用一些类库是可以解决问题,但是有时类库的运行效率比较慢,引用的东西比较多,如果需要的方法不多,可以写一些简单的计算方法。

下边分享几个常用的gis计算方法:

//判断点是否在面里

public bool IsPointInPolygon(List<CVector> poly, CVector point)

  {

     int i, j;

     bool c = false;

     for (i = 0, j = poly.Count - 1; i < poly.Count; j = i++)

     {

        if ((((poly[i].VY <= point.VY) && (point.VY < poly[j].VY))

                  || ((poly[j].VY <= point.VY) && (point.VY < poly[i].VY)))

                  && (point.VX < (poly[j].VX - poly[i].VX) * (point.VY - poly[i].VY)

                      / (poly[j].VY - poly[i].VY) + poly[i].VX))

          {

              c = !c;

          }

      }

      return c;

  }

//计算弧度

 public double Rad(double d)
{
 return d * Math.PI / 180.0;
}

//计算角度

public static double RAngle(double d)
 {
 return d * 180.0 / Math.PI;
}

//计算两个坐标的中心点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值