Stroke.NearestPoint (Método) (Point)
Actualización: noviembre 2007
Devuelve la ubicación del objeto Stroke más próximo al objeto Point especificado.
Espacio de nombres: Microsoft.Ink
Ensamblado: Microsoft.Ink (en Microsoft.Ink.dll)
Sintaxis
'Declaración
Public Function NearestPoint ( _
pt As Point _
) As Single
'Uso
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
Parámetros
- pt
Tipo: System.Drawing.Point
El punto especificado, en coordenadas de espacio de entrada manuscrita.
Valor devuelto
Tipo: System.Single
Devuelve la ubicación del objeto Stroke más próximo al objeto Point especificado.
Comentarios
Un índice de punto flotante es un valor flotante que representa una ubicación situada en algún lugar entre dos puntos del objeto Stroke. Por ejemplo, si 0,0 es el primer punto del trazo y 1,0 el segundo punto, 0,5 se encontrará a mitad de camino entre el primer y el segundo punto. De igual forma, un valor de índice de punto flotante de 37,25 representa una ubicación que se encuentra en el 25 por ciento de la línea que une los puntos 37 y 38 del trazo.
Ejemplos
En este ejemplo, se examinan todos los objetos Stroke seleccionados de un objeto InkOverlay. Con el método NearestPoint, se determina el punto del trazo que está más próximo al centro del lienzo de la entrada manuscrita. Se crea un nuevo objeto Stroke que conecta el punto más próximo con el centro del lienzo de la entrada manuscrita.
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);
}
Plataformas
Windows Vista
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Información de versión
.NET Framework
Compatible con: 3.0