graph

Тема в разделе "WASM.PROJECTS", создана пользователем Dukales, 10 янв 2010.

  1. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    Вот написал X). Море радости.
    Отображает график двумерный с подписями по осям, возможностью выделения горизонтального диапазона (кусок другого проекта). Берёт данные из файла input.txt. Можно масштабировать (скроллингом мыши наезд+-). Можно скроллить — это правой кнопкой. Увеличивать рамкой — левой кнопкой слева сверху направо вниз. Отмаксить зум и отцентровать можно отпустив растянутую рамку в 3 другие направления. :)
    Что не так? Чего не хватает?
     
  2. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Жаль не приложен exe. Не всем охота искать С++ билдер чтобы откомпилить. Также в посте желательно было указать используемые языки и библиотеки.

    А чем пользовались для раскладки в команды сопроцессора арифметических выражений? Подсматривали у компилятора?
     
  3. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    keYMax
    думал здесь нельзя выкладывать исполняемые. сейчас исправлю.
    сам выводил когда-то на листочке бумаги. не видел, чтобы компилятор использовал FXTRACT. возведение в целочисленную степень подсмотрел в модуле Math Delphi.
     
  4. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    ну вот. в чистом виде не прикрепилось +). как и ожидал
     
  5. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    язык C++, среда Borland C++ Builder 6.
    #include <windows.h>
    #include <stdio.h>
    #include <GL/gl.h>
     
  6. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    без dynamic RTL
     
  7. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Долго крутил скролл вверх, и, все таки заставил прогу повистнуть :)
    Неплохо бы добавить пределы зума, ну скажем туда-сюда до 100 раз.
     
  8. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    я это вроде бы когда-то учёл — она по крайней мере не висла (всегда можно было откатить назад растягивая рамку, например, влево вверх). можно сделать так, что когда остаётся 1 и менее подписей, просто не выполнять дальнейший зум.
     
  9. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Ограничить зум действительно нужно. Нужна привязка и к нулевой отметке если у вас нет например минусовых значений по Y зачем рисовать график висящим в облаках? если есть зумм должен быть и скролл по горизонтали и график наверное по логике должен маштабироваться по вертикали в высоту окна с соотвествующим перерасчетом отметок по вертикали и горизонтали, а не теряться вершиной за его пределами
     
  10. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Dukales
    а и можно посмотреть как реализовано управление здесь
    (флэшовый двумерный график курсов валют)
    h__p://news.yandex.ru/quotes/1.html#20090715-20091217
     
  11. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    вот ещё нашёл. множество Мандельброта рисует. "движок" тот же (был такой TChart компонент вроде бы, так вот с него идея взята). синяя рамка выделяет участок так, чтобы не было искажений. на увеличении 10^17 проявляются эффекты дискретности представления long double
     
  12. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    принцип таков: в каждый момент следует выводить максимум информации.

    вы пробовали правую кнопку зажать и поводить мышкой? есть ещё рамка — её нужно растягивать левой кнопкой (нажать и тянуть): когда зелёная (это слева сверху вправо вниз) — захваченая область (прямоугольная) будет отмасштабирована на весь экран; когда красная — ничего не происходит; когда синяя — вид будет от-max-ен (с отступами от границ "экрана").
     
  13. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    keYMax
    хороший "контрол". но для своих целей. я пытался сделать для общего случая.
     
  14. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    тогда да, все верно. вопросы сняты :)
     
  15. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    критерий (при увеличении) таков думаю должен быть таков: если хотя бы по одной из осей отношение 0.5*(high + low)/delta > 1E17 то будут начинать проявляться эффекты дискретности. для вывода критерия при уменьшении масштаба необходимо копаться в документам по sprintf, чтобы выяснить сколько она знаков выводит максимум без обязательного перевода в абсолютный вид. хотя может быть дело и не в этом.
     
  16. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    бесит это отсутствие редактирования
     
  17. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    более осмысленная версия. вся логика интерфейса работает правильно наверняка и т.п.
     
  18. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    отправьте пожалуйста в projects
     
  19. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    upd.
    -всякие ошибки
     
  20. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    всё с этим проектом.
    дальше - больше).