|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.01.2011, 02:00 | #1 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
Canvas, код готов. Пропорции.
Здравствуйте.
Вот появилась необходимость чертить графики. TChart по ряду некоторых причин не подходит. Решено было всё делать на Канве. Методика следующая. Берём канву, обязательное условие, чтобы она была квадратная. Отсюда следует первая проблема – канва 330х330, а координаты могут быть в пределах 100 000. Решаю следующим образом. Выбираю максимальное значение X или Y перебирая все точки. Выбрав максимум, допустим 35 000. Приводим это всё дело для отображения на канве к пропорции: Длина и ширина канвы 330 - максимальному значению точки 35 000 Размещение на канве значения координаты ? - допустим 28 500 Иными словами пропорция 330 = 35 000 ? = 28500 Отсюда неизвестное значение примерно равно 271, как раз значение для любой оси на канве 330 = 35 000 271 = 28500 330 = 100% 271 = 82% Т.е. я просто пропорционально переношу большую координату на канву. Со значениями в пределах 40 000 график выглядит как на рисунке 1 И мне нужно приблизить как-либо линию, ну просто чтобы она рисовалась уже в приближенном виде. См. рисунок 2 P.S. Оси координат специально поменяны местами, этого требует задача. код Код:
|
27.01.2011, 10:10 | #2 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
Судя по предыдущему посту вам chart как раз подойдёт. У него куча настроек. А вот с канвой будет геморой. Поизучайте этот комопнент, там ниччего сложного. А чтобы у вас всегда был квадратным уберите галку автомасштабирование и выставите какой вам надо + Chart1.MaxPointsPerPage:=0;
|
27.01.2011, 14:07 | #3 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
Суть в том, что в Чарте есть сетка, и как раз эта сетка постоянно меняется, надо чтобы всегда сетка квадратная была.
|
27.01.2011, 14:20 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Если не ошибаюсь в Чарте всетки можно настроить сетку стабильно и жестко...
Покрутись в дизайнере в его свойствах.
I'm learning to live...
|
28.01.2011, 13:22 | #5 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
Поскольку Вы (вроде бы) не в первый раз пишете с этой проблемой, решил помочь. TChart действительно обладает чрезвычайно большим количеством настроек, к сожалению настолько большим, что тяжело в них ориентироваться (с программной стороны).
Думаю этот пример сгодится для вас. Здесь масштаб по вертикальной оси задается изначально, а по горизонтальной подстраивается автоматически из условия квадратности ячеек. Код программы со скомпилированным *.exe приложен. Код:
Это пример визуальной настройки осей: ps: Еще рекомендую скачать с офф.сайта разработчика User Guide and Tutorials v8 (TeeChart User Guide, Tutorials and Help for TeeChart VCL v8 (3.75 MB)). Там и вся справка по компоненту + есть Юзер-Гуайд, в котором статья "Custom drawing on the Chart" (там хорошо все разбирается).
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. |
28.01.2011, 13:26 | #6 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
|
28.01.2011, 13:34 | #7 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
Проблема-то не только в этом (точнее совсем не в этом). Автор хотел, как я понимаю, получить физически квадратные ячейки (в пикселях экрана). Чтобы, скажем, круг, выглядел кругом, а не эллипсом. Проблема как раз в том, как найти пиксельные координаты начала и конца осей на панели Чарта.
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно исправить код. Он готов, но нужна проверка и доработка. | Forbesii | Фриланс | 2 | 24.12.2010 23:09 |
Готов ли я к изучению С++? | fs444 | Свободное общение | 3 | 18.09.2009 10:23 |
Вставка картинки реальных размеров или хотябы в пропорции | Mbus | Microsoft Office Excel | 4 | 02.12.2008 09:55 |