This document is archived and information here might be outdated. Recommended version. |
Constructs an arc of given start point near first segment and tangent to two segments. hintPoint can be nil or can be a location near the desired fillet.
[Visual Basic .NET] Public Sub ConstructFilletPoint ( _ ByVal s1 As ISegment, _ ByVal s2 As ISegment, _ ByVal from As IPoint, _ ByVal hintPoint As IPoint _ )
[C#] public void ConstructFilletPoint ( ISegment s1, ISegment s2, IPoint from, IPoint hintPoint );
[C++]
HRESULT ConstructFilletPoint(
ISegment* s1,
ISegment* s2,
IPoint* from,
IPoint* hintPoint
);
[C++] Parameters s1
s1 is a parameter of type ISegment* s2
s2 is a parameter of type ISegment* from
from is a parameter of type IPoint* hintPoint
hintPoint is a parameter of type IPoint*
A Fillet Arc is a CircularArc constructed between two input segments such that the CircularArc is tangential to both embedded segments at the Fillet Arc endpoints. ConstructFilletPoint constructs a Fillet Arc between two input Segments given a suggested From Point and a Hint Point. The From Point of the Fillet Arc is the nearest point on one of the input segments to the input From Point. The Hint Point determines which Fillet Arc is to be constructed and the region in which the desired Fillet Arc should exist. The To Point of the Fillet Arc lies on the embedded extension of the other segment. If the Hint Point lies in a region in which the Fillet Arc cannot be constructed given the input From Point, an error is returned.
private void ConstructFilletPoint() { IConstructCircularArc constructCircularArc = new CircularArcClass(); ICircularArc circularArc = constructCircularArc as ICircularArc; IPoint fromPoint1 = new PointClass(); fromPoint1.PutCoords(100, 100); IPoint toPoint1 = new PointClass(); toPoint1.PutCoords(50, 50); ILine line1 = new LineClass(); line1.PutCoords(fromPoint1, toPoint1); IPoint fromPoint2 = new PointClass(); fromPoint2.PutCoords(100, 100); IPoint toPoint2 = new PointClass(); toPoint2.PutCoords(150, 50); ILine line2 = new LineClass(); line2.PutCoords(fromPoint2, toPoint2); IPoint hintPoint = new PointClass(); hintPoint.PutCoords(100, 75); constructCircularArc.ConstructFilletPoint(line1 as ISegment, line2 as ISegment, line1.ToPoint, hintPoint); String report = "Length : " + circularArc.Length + "\n" + "Radius : " + circularArc.Radius + "\n" + "Chord Height : " + circularArc.ChordHeight + "\n" + "Central Angle (Rad) : " + circularArc.CentralAngle + "\n" + "From Angle (Rad) : " + circularArc.FromAngle + "\n" + "To Angle (Rad) : " + circularArc.ToAngle + "\n" + "Center Point : " + circularArc.CenterPoint.X + " , " + circularArc.CenterPoint.Y + "\n" + "From Point : " + circularArc.FromPoint.X + " , " + circularArc.FromPoint.Y + "\n" + "To Point : " + circularArc.ToPoint.X + " , " + circularArc.ToPoint.Y; System.Windows.Forms.MessageBox.Show(report); }
Private Sub ConstructFilletPoint()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim pToPoint As ESRI.ArcGIS.Geometry.IPoint
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
Dim pLine1 As ESRI.ArcGIS.Geometry.ILine
Dim pLine2 As ESRI.ArcGIS.Geometry.ILine
Dim pHintPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pToPoint = New ESRI.ArcGIS.Geometry.Point
pLine1 = New ESRI.ArcGIS.Geometry.Line
pLine2 = New ESRI.ArcGIS.Geometry.Line
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(50, 50)
pLine1.PutCoords(pFromPoint, pToPoint)
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(150, 50)
pLine2.PutCoords(pFromPoint, pToPoint)
pHintPoint = New ESRI.ArcGIS.Geometry.Point
pHintPoint.PutCoords(100, 75)
pConstructCircularArc.ConstructFilletPoint(pLine1, pLine2, pLine1.ToPoint, pHintPoint)
Debug.Print("Length : " & pCArc.Length)
Debug.Print("Radius : " & pCArc.Radius)
Debug.Print("Chord Height : " & pCArc.ChordHeight)
Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)
Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)
Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)
Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)
Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)
Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)
End Sub
IConstructCircularArc Interface | IConstructCircularArc.QueryFilletRadiusRange Method | IConstructCircularArc.ConstructFilletPoint Method | IConstructCircularArc.ConstructFilletRadius Method