none
Перевод графика(нарисован в canvas с помощью pathgeomtry)в пиксели растра и дальнейшим сохранением в картинку! RRS feed

  • Вопрос

  • Добрый день.Прошу помощи.В канвас рисуется график с помощью забинденной кнопкой следующим образом:

    private DelegateCommand getItemCommand2; public ICommand Method_for_Button2 { get { if (getItemCommand2 == null) getItemCommand2 = new DelegateCommand(ActivityMethod2); return getItemCommand2; } } public void ActivityMethod2() { Creator lol2 = new pramayCreator(); ab.Implementor = new line(); NameFunction = ab.Operation(); double Xstep = 1; // PathFigure myPathFigure = new PathFigure(); for (double fx = _Xstart; fx <= _Xfinish; fx += Xstep) { Functions func2 = lol2.FactoryMethod(fx); double fy = func2.fy; // Здесь главная формула графика double cx = (ZeroX + fx * _ScaleX); double cy = (ZeroY - fy * _ScaleY); // Перевод в систему координат полотна. Y переворачивается книз головой // Для первой точки зададим фигуре ее начало if (fx == Xstart) { myPathFigure.StartPoint = new Point(cx - 300, cy - 200); } else { // Для остальных формируются короткие отрезки myPathFigure.Segments.Add( new LineSegment( new Point(cx - 300, cy - 200), true /* IsStroked */ )); } } /// Create a PathGeometry to contain the figure. myPathGeometry = new PathGeometry(); myPathGeometry.Figures.Add(myPathFigure); }

    Задание:применить паттерн интерпретатор для перевода пикселей графика в пиксели растра и сохранением в картинку его.Очень прошу помощи!Спасибо!

    22 декабря 2015 г. 14:45

Ответы

  • Решение может быть таким.

    Вы пишете, что рисуете график в Canvas, а Canvas - это наследник класса Visual. Любой объект этого класса можно "нарисовать" в памяти в виде bitmap. Для этого создаем объект класса RenderTargetBitmap, вызываем его метод Render и передаем ему в параметре объект Visual (т.е. Ваш Canvas).

    Ну, а дальше делайте с этим bitmap, что хотите. Можно работать с пикселями, можно записать картинку в файл и т.д.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    23 декабря 2015 г. 12:56

Все ответы

  • Видите ли. Здесь не решают учебные задачи по программированию. Что Вы сделали для ее решения? Что у Вас не получается?

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    22 декабря 2015 г. 18:49
  • не получается взять точки для дальнейшей работы с ними .
    22 декабря 2015 г. 22:37
  • Решение может быть таким.

    Вы пишете, что рисуете график в Canvas, а Canvas - это наследник класса Visual. Любой объект этого класса можно "нарисовать" в памяти в виде bitmap. Для этого создаем объект класса RenderTargetBitmap, вызываем его метод Render и передаем ему в параметре объект Visual (т.е. Ваш Canvas).

    Ну, а дальше делайте с этим bitmap, что хотите. Можно работать с пикселями, можно записать картинку в файл и т.д.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    23 декабря 2015 г. 12:56