Как средствами WPF отрисовать график функции, используя Canvas?

Как средствами WPF, используя Canvas, отрисовать график функции?

Можно ссылки на примеры или хотя бы куда копать. Всем спасибо.
  • Вопрос задан
  • 6922 просмотра
Решения вопроса 1
@Sumor
Вычисляются значения функции с определённым шагом, дальше в колекцию PathFigure добавляются объекты типа LineSegment (если не нужно интерполировать) или другой наследник класса PathSegment, соответствующий нужной интерполяции. Например, кривыми Безье третьего порядка — PolyBezierSegment.
Point указывает новую точку, до которой нужно продолжить график.
При расчётах нужно учитывать, что у Canvas начало координат находится в левом верхнем углу, а ось Y направлена вниз. Либо учитывать при расчётах следующей точки, либо использовать трансформации Canvas.
Должно получиться вроде этого
<Canvas>
    <Path Stroke="Black" StrokeThickness="1">
        <Path.Data>
            <PathGeometry>
                <PathFigure>
                    <LineSegment Point="100,100"/>
                    <LineSegment Point="150,120"/>      
                    <PolyBezierSegment Points="170,120 190,100 200,160 220,140"/>
                </PathFigure>
            </PathGeometry>
        </Path.Data>
    </Path>    
</Canvas>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MikhailD
@MikhailD
Developer
Простой вариант: вычислить значение функции в нескольких точках и соединить и отрезками. Чем больше точек, тем более плавным получится график.
Вариант сложнее: использовать интерполяцию

Выбирайте способ, в зависимости от вашей задачи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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