Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

График GDI

284
04 июля 2006 года
michael_is_98
587 / / 25.02.2005
Исходя из собственных наблюдений, думаю, что произвольный двумерный массив вещественных чисел можно отобразить в виде 2-д графика двумя способами:
1) с сохранением масштаба одинаковым по оси абсцисс и ординат
2) с разным масшабом по оси абсцисс и ординат

В первом случае задается минимальное/максимальное значение для оси абсцис, минимальное/максимальное деление для оси ординат.
Для оси абсцисс эти значения остаются неизменными в любом случае.
Для оси ординат разность максимального и минимального должна оставаться неизменной при заданной ширине/высоте области рисования в пикселах. И должна пересчитываться при изменении размеров области рисования для того, чтобы по оси абсцисс и ординат деления были одинаковыми.
Подбором макс./минимального значений по оси ординат и оси абсцисс можно задать именно ту область, на которой виден график.
Плюсы - одинаковое делений по оси абсцисс и оси ординат, видны пропорции.
Минусы - нельзя увидеть весь график, если он не помещается в область графика или указанные значения не позволяют его увидеть.

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

У меня вопрос ко всем присутствующим - нельзя ли объединить достоинства двух методов ? Т.е. чтобы деления по осям абсцисс и ординат были одинаковыми, а их мин/макс. значения подбирались так, чтобы вместить график в область рисования?
11K
04 июля 2006 года
Ireul
90 / / 15.06.2006
Ну ты нагородил... у тебя же есть минимумы и максимумы, я правильно понял? Так масштабируй. Пусть тот, кому это смотреть, сам выбирает как он должен это видеть. А деления ДОЛЖНЫ быть по обеим осям одинаковыми, если, конечно, не принадлежат разным единицам измерения. А в качестве фишки добавь возможность увидеть покрупнее любую часть графика,а не только его центр - и все тебя поймут.
284
05 июля 2006 года
michael_is_98
587 / / 25.02.2005
Второй способ постороить график - это простая попытка решить вопрос вывода графика.
Потом, представьте, что нужно вывести 1000 точек по горизонтали при ширине области вывода в 300 пикселей по горизонтали. Некоторые пиксели будут накладываться друг на друга. И вывод графика будет медленным. Т.е. для данной ширине области вывода достаточно брать не все точки.
284
06 июля 2006 года
michael_is_98
587 / / 25.02.2005
И еще одна сложность - передача структуру по тому, что именно рисовать в тот компонент, который будет затем все это прорисовывать.
11K
06 июля 2006 года
Ireul
90 / / 15.06.2006
[QUOTE=michael_is_98]И еще одна сложность - передача структуру по тому, что именно рисовать в тот компонент, который будет затем все это прорисовывать.[/QUOTE]

Ты ЗАДАЧУ изложи, а? А то что тебе нужно по твоим "соображениям" в упор не понятно. Скажи хоть что "дано" и что "требуется".
284
07 июля 2006 года
michael_is_98
587 / / 25.02.2005
Задача просто - обеспечить вывод 2-д графика с помощью GDI, при этом деления по осям одинаковы (сохраняют пропорции), для вывода задаются мин. и макс. значения по оси абсцисс, мин. значение по оси ординат (макс. подсчитывается автоматом), ширина, высота в пикселах рисунка и его левый верхний угол (в пикселах). Данные могут быть представлены в виде одномерного массива вещ. чисел известной длины или (не И!) в виде функции одного аргумента в текст. виде.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог