Самый легкий способ потянуть последовательность точек в WPF из кода

Это действительно походит на академический вопрос.

решение, которое приходит на ум, включает r* деревья. Это делит Вашу общую площадь на индивидуально размерный и возможно перекрывающиеся поля. После выполнения этого можно тогда определить, представляет ли каждое поле 'кластер' или не для Вас путем вычисления среднего расстояния.

R* Деревья

, Если тот подход становится трудным реализовать Вас, могут быть более обеспеченным разделением Вашего datagrid в подразделения равного размера и определение, если кластер происходит в каждом; необходимо будет очень помнить граничные условия с этим подходом все же. Я предложил бы, чтобы после начального подразделения Вы прошли и повторно объединили области с точками данных в определенном пороге определенного края.

5
задан Dave Clemmer 18 August 2011 в 03:18
поделиться

2 ответа

А как насчет простого использования ломаной линии?

Вот xaml:

<Window
    x:Class="CursorLine.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1"
>
    <Canvas x:Name="canvas" Background="#00FFFFFF" MouseMove="Canvas_MouseMove">
        <Polyline x:Name="polyline" Stroke="DarkGreen" StrokeThickness="3"/>
    </Canvas>
</Window>

Вот код:

private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
    polyline.Points.Add(e.GetPosition(canvas));
}
13
ответ дан 18 December 2019 в 11:58
поделиться

Используйте GeometryGroup. Это может иметь несколько дочерних геометрий: в вашем случае вы должны добавить EllipseGeometry для каждой точки перемещения мыши с центром в местоположении мыши. Примерно так:

private GeometryGroup _allMousePoints = new GeometryGroup();

void OnMouseMove(...)
{
  _allMousePoints.Children.Add(
    new EllipseGeometry {
      Center = mouseLocation,
      RadiusX = 3,
      Radius Y = 3
    });
}

Теперь вы можете использовать _allMousePoints как геометрию объекта GeometryDrawing или данные пути.

2
ответ дан 18 December 2019 в 11:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: