none
Библиотека для 2D анимированной графики RRS feed

  • Вопрос

  • Вот пример того, что хотелось бы получить в результате http://www.ejschart.com/examples/other/dynamicArray.html

    Только библиотека должна быть быстрой, не менее 60 Hz, т.е. 1 кадр каждые 16,6 мс. Найденная мной библиотека ZedGrapg имеет ограничение 100 мс. Какое ограничение имеет System.Windows.Forms.DataVisualization.Charting я найти не смог, может кто подскажет?

    Знаете ли Вы что-нибудь подходящее? Может быть возможно использование OpenGL или Direct2D?

    4 апреля 2011 г. 8:11

Ответы

  • Пример, который Вы скачали с сайта http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.aspx
    Working with Data
          Real Time Datа 
                 Real...
                 Real... 
    Если Вы сможете залезть в исходный код, который здесь же приведен,
    то Вы сами сможете измерить быстродействие, которое Вас интересует.
    Но, поверьте, этого быстродействия Вам хватит с лихвой. 
    Во всяком случае, то что вы привели для примера в этом топике - это слезы.

    Нужно научиться работать с исходниками.
    Тот пример, о котором я говорю - это  классика.
    Попытайтесь разобраться в нем.

    • Помечено в качестве ответа Abolmasov Dmitry 5 апреля 2011 г. 13:42
    4 апреля 2011 г. 13:08
  • Вы скачали с означенного сайта C#-проект, т.е. программу, в которой с демонстрационной целью реализованы возможности 
    System.Windows.Forms.DataVisualization.Charting, пространства имен, т.е. набора специально разработанных классов для рисовки графиков и диаграмм.
    Весь этот проект Вы поместили в отдельную папку, например, C:\X.

    Тогда, для того, чтобы посмореть, как это работает, Вы должны запустить файл C:\X\WinFormsChartSamples.exe.
    В открывшемся окне слева последовательно откройте папки
    Working with Data
    Real Time Datа
    затем поочереди кликните имеющиеся там два пункта -
    Real Time Data (Thread Safe) 
    Real Time Data (Timer)

    Это чтобы посмотреть, как это работает.

    Чтобы попробовать что-нибудь попрограммировать или поразбираться в исходном тексте программы нужно -

    1. Скопировать папку C:\X в папку C:\Y для сохранения рабочей копии. 
    2. Двойным кликом запустить файл  
    C:\X\WinFormsChartSamples.sln - при этом 
    открывается окно проекта.
    3. Во вкладке "Обозреватель решений", а если ее нет, то открыть ее кликами "Вид-Другие окна-Обозреватель решений",
    Открыть \WorkingWithDate\RealTimeData\RealTimeThread\RealTimeSample.cs - это исходный текст программы.
    Вот и все - текст программы перед Вами, делайте с ним все, что душе угодно. Только имейте ввиду, что эта программа в проекте не одна, она связана с другми модулями, в том числе и c MainForm.
    4. Для проверки работоспособности программы запустите ее кнопкой F5. Должно открыться окно, которое мы уже видели.

    Какие книги посоветовать? Литературы много, в том числе и здесь на форумах можно посмотреть советы старослужащих.
    Но, честно говоря, если есть достойная работающая программа, а эта программа весьма представительна, то, во-первых, никаких других инструментов искать не надо - это распыление, отвлечение от дела, и во-вторых, берите эту программу и дергайте ее, чтобы понять что и как. Ну, может быть, взять книжку с элементарной информацией о том, как, например поставить точку останова, чтобы программа остановилась в нужном месте, о том, как пощупать переменные, как они вычисляются, чтобы в пошаговом режиме посмотреть, что с этими переменными происходит, куда все движется...

    Но еще раз повторюсь - освоение инструмента - это самое простое из того, чем Вы озадачились. Второе по сложности - это написание программ - утилит, но самое нетривиальное в Вашей сверхзадаче - это построение доходного алгоритма. Это самый главный спотыкач, но до него Вам еще ох как далеко. 
    Дерзайте! Вперед и с песней!



    • Помечено в качестве ответа Abolmasov Dmitry 5 апреля 2011 г. 13:42
    4 апреля 2011 г. 18:16

Все ответы

  • Пример, который Вы скачали с сайта http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.aspx
    Working with Data
          Real Time Datа 
                 Real...
                 Real... 
    Если Вы сможете залезть в исходный код, который здесь же приведен,
    то Вы сами сможете измерить быстродействие, которое Вас интересует.
    Но, поверьте, этого быстродействия Вам хватит с лихвой. 
    Во всяком случае, то что вы привели для примера в этом топике - это слезы.

    Нужно научиться работать с исходниками.
    Тот пример, о котором я говорю - это  классика.
    Попытайтесь разобраться в нем.

    • Помечено в качестве ответа Abolmasov Dmitry 5 апреля 2011 г. 13:42
    4 апреля 2011 г. 13:08
  • Т.е. OpenGL это больно круто для одного графика использовать? Вы это имеете ввиду?

    Что стоит прочитать чтобы научиться работать с исходниками? У меня знаний очень мало: если метод от класса я еще отличу, то вот объект от конструктора уже с трудом.

    4 апреля 2011 г. 14:07
  • Вы скачали с означенного сайта C#-проект, т.е. программу, в которой с демонстрационной целью реализованы возможности 
    System.Windows.Forms.DataVisualization.Charting, пространства имен, т.е. набора специально разработанных классов для рисовки графиков и диаграмм.
    Весь этот проект Вы поместили в отдельную папку, например, C:\X.

    Тогда, для того, чтобы посмореть, как это работает, Вы должны запустить файл C:\X\WinFormsChartSamples.exe.
    В открывшемся окне слева последовательно откройте папки
    Working with Data
    Real Time Datа
    затем поочереди кликните имеющиеся там два пункта -
    Real Time Data (Thread Safe) 
    Real Time Data (Timer)

    Это чтобы посмотреть, как это работает.

    Чтобы попробовать что-нибудь попрограммировать или поразбираться в исходном тексте программы нужно -

    1. Скопировать папку C:\X в папку C:\Y для сохранения рабочей копии. 
    2. Двойным кликом запустить файл  
    C:\X\WinFormsChartSamples.sln - при этом 
    открывается окно проекта.
    3. Во вкладке "Обозреватель решений", а если ее нет, то открыть ее кликами "Вид-Другие окна-Обозреватель решений",
    Открыть \WorkingWithDate\RealTimeData\RealTimeThread\RealTimeSample.cs - это исходный текст программы.
    Вот и все - текст программы перед Вами, делайте с ним все, что душе угодно. Только имейте ввиду, что эта программа в проекте не одна, она связана с другми модулями, в том числе и c MainForm.
    4. Для проверки работоспособности программы запустите ее кнопкой F5. Должно открыться окно, которое мы уже видели.

    Какие книги посоветовать? Литературы много, в том числе и здесь на форумах можно посмотреть советы старослужащих.
    Но, честно говоря, если есть достойная работающая программа, а эта программа весьма представительна, то, во-первых, никаких других инструментов искать не надо - это распыление, отвлечение от дела, и во-вторых, берите эту программу и дергайте ее, чтобы понять что и как. Ну, может быть, взять книжку с элементарной информацией о том, как, например поставить точку останова, чтобы программа остановилась в нужном месте, о том, как пощупать переменные, как они вычисляются, чтобы в пошаговом режиме посмотреть, что с этими переменными происходит, куда все движется...

    Но еще раз повторюсь - освоение инструмента - это самое простое из того, чем Вы озадачились. Второе по сложности - это написание программ - утилит, но самое нетривиальное в Вашей сверхзадаче - это построение доходного алгоритма. Это самый главный спотыкач, но до него Вам еще ох как далеко. 
    Дерзайте! Вперед и с песней!



    • Помечено в качестве ответа Abolmasov Dmitry 5 апреля 2011 г. 13:42
    4 апреля 2011 г. 18:16
  • Спасибо за столь развернутый ответ.

    Я уже сам до части из этого дошел. Но в одном Вы ошиблись. Мне не нужен доходный алгоритм. Его на самом деле нет. В принципе нет, на сколько-нибудь продолжительном периоде.

    5 апреля 2011 г. 12:05
  • О! Да Вы в курсе дела! Похвально!
    Но что же заставляет Вас перерисовывать 1000-кратно перерисованное?
    Это с одной стороны.
    А с другой стороны, всякая проблема именно так и решается -
    все нормальные люди знают, что что-то делать нельзя, потому что этого не может быть...
    Но находится какой-нибудь неуч, который этого не знает, и который берется за эту нерешаемую проблему
    и ко всеобщему удивлению находит простое и адекватное решение - куча примеров...
    Вот тут я опять же ни в коем случае не агитирую, а до этого я не отговаривал, - все должно идти своим чередом,
    чувствуете свой потенциал - беритесь, не чувствуете, ищите что-либо другое... 
    5 апреля 2011 г. 15:39
  • Вы меня назвали неучем. Ну да ладно, я не обидчивый.
    7 апреля 2011 г. 6:45
  • Ни в коем случае! "Неуч"-это собирательный образ, а в данном случае это скорее комплимент!
    Не секрет, ведущие ВУЗы, включая самые солидные и у нас и за бугром,
    ежегодно предлагают своим "неучам", студентам со свежими мозгами,
    задачки "в две строчки" в качестве домашних упражнений,
    среди которых скромненько так, не афишируя, 
    вкрапляют не решенные до сих пор проблемы века...
    Пусть ребята поупражняются, а вдруг да и решат...
    Так что "неуч" - звучит гордо!

    7 апреля 2011 г. 7:05
  • Что касается темы поста, я все таки выбрал Tao OpenGL. Там, как мне кажется, я простыми 2D примитивами смогу нарисовать все что мне надо с точностью до одного пикселя. Думаю что DataVisualization.Charting такой гибкости дать не сможет.
    10 апреля 2011 г. 10:08
  • Если бы это влияло на мой заработок, я бы тоже придумал что-нибудь позаковыристей...
    К сожалению, это мираж...
    Чисто графики к тому же транслируются всякие и всеми кому не лень...
    Но начать с чего-то нужно, в этом смысле поддерживаю Ваш выбор.
    Рисовка графиков и диаграмм пикселями была актуальна 10 лет назад, 
    Charting дает Вам возможность просто и красиво рисовать все интересующие Вас
    диаграммы и графики в реальном времени - нужно только все правильно организовать в вашей программе.
    Но выбор за Вами. 
    10 апреля 2011 г. 21:45
  • Чисто графики к тому же транслируются всякие и всеми кому не лень...
    Именно поэтому они и бесполезны:)
    Не подскажете как создать проект только для х86?
    11 апреля 2011 г. 12:47
  • Серьезная заявка. Удачи!
    По поводу x86 посмотрите сюда -
    http://social.msdn.microsoft.com/Forums/ru-RU/programminglanguageru/thread/dc0a1a1e-4e57-4dc3-8ab9-9e02a5b7a41e
    и это вопрос к PashePash.
    Но поверьте, это еще настолько далеко, что даже задумываться не стоит -
    даже быстродействия в отладочном режиме Вам хватит,
    а есть еще Relise, который работает в общем случае на 15-20% быстрее.
    Не теряйте времени на второстепенные вопросы.


     
    11 апреля 2011 г. 15:01