線上到指定點的距離最短的一點


在ArcEngine中可以通過兩種方式實現:

第一種:由ICurve和IPolyline接口的QueryPointAndDistance方法實現。  

           該方法中有七個參數,下面對這些參數進行詳細說明:

          1.extension參數:esriSegmentExtension枚舉類型,用於指定曲線段延伸的方式,主要有esriNoExtension(曲線段不做延伸)、esriExtendTangents等。延                   伸方式。

          2. inPoint參數:指輸入點對象,IPoint類型,即要求該點到曲線的最短距離;
          3. asRatio參數:bool類型,指定從改方法得到的distanceAlongCurve參數(見后)的值是以占曲線總長度的比例的方式輸出還是以絕對長度值輸出;
          4. outPoint參數:輸出點對象, IPoint類型,即所找到的曲線上到輸入點距離最小的點,使用前只需先實例化;
          5. distanceAlongCurve參數:double類型,指曲線的FromPoint(起始點)到輸出點(outPoint)的曲線長度,asRatio參數將影響改值的輸出方式(比例還是絕對長度值);
          6. distanceFromCurve參數:double類型,指輸入點到曲線的最短距離;
          7.bRightSide參數:bool類型,指輸入點是否在曲線的右方。

          代碼示例(C#):
          IPolyline i_poly = ... ;//已知曲線
          IPoint inPoint = ...; //已知點
          IPoint outPoint = new PointClass(); //曲線上到輸入點距離最小的點;
          double distAlongCurveFrom = 0; //曲線其實點到輸出點部分的長度
          double distFromCurve = 0;//輸出點到輸入點的距離
          bool isRightSide = false;//輸入點是否在曲線的右邊
          i_poly.QueryPointAndDistance(esriSegmentExtension.esriNoExtension, inPoint, false, outPoint, ref distAlongCurveFrom, ref distFromCurve, ref isRightSide);
第二種:由接口IProximityOperator的ReturnNearestPoint方法實現。  

           該方法中有兩個參數,下面對這些參數進行詳細說明:

          1. IPoint參數:指輸入點對象,IPoint類型,即要求該點到曲線的最短距離;

          2. esriSegmentExtension參數: esriSegmentExtension類型;
 
          代碼示例(C#):

          IPolyline pPolyline = ...;
          IProximityOperator proOperator = pPolyline as IProximityOperator;
          position = proOperator.ReturnNearestPoint(clickPoint, esriSegmentExtension.esriNoExtension);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM