Stroke.NearestPoint 메서드 (Point)
업데이트: 2007년 11월
지정된 Point에 가장 가까운 Stroke 개체의 위치를 반환합니다.
네임스페이스: Microsoft.Ink
어셈블리: Microsoft.Ink(Microsoft.Ink.dll)
구문
‘선언
Public Function NearestPoint ( _
pt As Point _
) As Single
‘사용 방법
Dim instance As Stroke
Dim pt As Point
Dim returnValue As Single
returnValue = instance.NearestPoint(pt)
public float NearestPoint(
Point pt
)
public:
float NearestPoint(
Point pt
)
public float NearestPoint(
Point pt
)
public function NearestPoint(
pt : Point
) : float
매개 변수
- pt
형식: System.Drawing.Point
잉크 공간 좌표의 지정된 점입니다.
반환 값
형식: System.Single
지정된 Point에 가장 가까운 Stroke 개체의 위치를 반환합니다.
설명
부동 소수점 인덱스는 Stroke 개체의 두 점 사이에 있는 위치를 나타내는 부동 소수점 값입니다. 예를 들어 스트로크에서 첫 번째 점이 0.0이고 두 번째 점이 1.0인 경우 0.5는 첫 번째 점과 두 번째 점 사이의 중간 지점입니다. 마찬가지로 부동 소수점 인덱스 값 37.25는 스트로크의 37번과 38번 점 사이의 선에서 25% 위치를 나타냅니다.
예제
이 예제에서는 InkOverlay 개체의 선택된 각 Stroke 개체를 조사합니다. 그런 다음 NearestPoint 메서드를 사용하여 잉크 캔버스의 중심에 가장 가까운 스트로크의 점을 확인합니다. 그 다음 가장 가까운 점을 잉크 캔버스의 중심에 연결하는 새 Stroke 개체를 만듭니다.
Dim inkControl As Control = mInkOverlay.AttachedControl
' get the center of the ink control
Dim centerPt As Point = New Point(inkControl.Width / 2, inkControl.Height / 2)
Using g As Graphics = inkControl.CreateGraphics()
' convert center point to ink space coordinates
mInkOverlay.Renderer.PixelToInkSpace(g, centerPt)
End Using
' examine each selected stroke
For Each S As Stroke In mInkOverlay.Selection
' get the index of the nearest point
Dim fIdx As Single = S.NearestPoint(centerPt)
' create points from the center to the nearest point on the stroke
Dim connectPts() As Point = _
{ _
centerPt, _
S.GetPoint(CType(Math.Round(fIdx, MidpointRounding.ToEven), Integer)) _
}
' create the stroke
S.Ink.CreateStroke(connectPts)
Next
Control inkControl = mInkOverlay.AttachedControl;
// get the center of the ink control
Point centerPt = new Point(inkControl.Width / 2, inkControl.Height / 2);
using (Graphics g = inkControl.CreateGraphics())
{
// convert center point to ink space coordinates
mInkOverlay.Renderer.PixelToInkSpace(g, ref centerPt);
}
// examine each selected stroke
foreach (Stroke S in mInkOverlay.Selection)
{
// get the index of the nearest point
float fIdx = S.NearestPoint(centerPt);
// create points from the center to the nearest point on the stroke
Point[] connectPts = new Point[2]
{
centerPt,
S.GetPoint((int)Math.Round(fIdx, MidpointRounding.ToEven))
};
// create the stroke
S.Ink.CreateStroke(connectPts);
}
플랫폼
Windows Vista
.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
3.0에서 지원