![]() |
|
|
![]()
|
|
| vudu91 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
Помогите пожалуйста кто может разобратся с компонентом TChart... в меня при роботе с ним возникло два вопроса на какие не могу найти ответа
1)как можно сделать чтобы осий Оу и Ох пересекались в точке (0;0) при любых значениях min,max х и у??? 2)а как можно сохранить а потом загрузить в програму мой Chart??? помогите пожалуйста |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
||||
|
||||
| vudu91 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
mrbrooks,
я понимаю что в 0;0 но как это сделать, я никак не могу найти, просто я задаю в Chart в процентах месторосположение осе но а как задать начальные координаты в 0;0 я не знаю ... подскажи пожалуйста |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Можно, например, принудительно установить минимальное значение шкалы в ноль. Пример для оси Y (левой):
Или максимальное, в зависимости от задачи. Это сообщение отредактировал(а) Usper - 26.5.2009, 09:19 -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| vudu91 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
Usper,
cпасибо но такое мне не подходит, дело в том что мои оси находятся по середине при любых значениях min i max но когда пользователь изменяетн например maxY из 10 на 5 то ось Х пересекает у точке У в точке -2.5.. но а когда я и minY меняю на на -5 все норм, тоже самое по осью oY... и что делать не знаю |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Так может быть при каждом новом добавлении точки на график проверять координаты этой точки по Х и У, а после этого, если координаты выходят за текущий максимум по модулю увеличить минмальное и максимальное допустимое значение шкалы соответствующей оси синхронно?
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| vudu91 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
нет, мне просто надо чтобы оси Х и У всегда пересекались в (0;0) всегда
|
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
В результате они и будут всегда пересекаться в нуле. Вот код:
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| vudu91 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
а если Ymax а Ymin не равно -Ymax??? например 3 и -9
Это сообщение отредактировал(а) vudu91 - 26.5.2009, 20:25 |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Вопрос администраторам: может при регистрации новых пользователей на форуме надо ввести тест на знание русского языка? vudu91, я не понял смысл последнего вопроса. Где Вы нашли в моём примере Ymin? Вас интересует что произойдёт когда ряд данных будет несимметричен относительно нуля (т.е. координата Y будет меняться например так -1, 2, 10, 100)? На графике просто будет куча незанятого места. Но ведь Вы и хотели пересечение осей в точке 0. Пример можно усложнить, ввести проверку знака максимального и минимального значения в ряде данных. Например если ряд данных такой: 1,2,3,4, то установить Chart1->LeftAxis->Minimum (или Chart1->BottomAxis->Minimum) в ноль. Однако если ряд данных будет такой: 100, 101, 102, 103, то мы опять будем иметь кучу пустого места и с этим ничего поделать не получиться. У нас или более-менее заполненное место на графике или пересечение осей в точке 0. -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| vudu91 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
это у меня первоначальное
[/URL][/IMG]это когда я изменяю max и min [/URL][/IMG]мне нужно чтобы они пересекались в (0;0).. график строится только в этом диапазоне, за грани min и max он невыходит вот пример а при изменении |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Ага, вот оно что, я использовал XMax и YMax для своих целей, чтобы вычислить в каких диапазонах изменяются значения по шкале оси. Если Вам надо вручную вводить эти самые диапазоны (как я понял по скриншотам, которые, кстати, смог посмотреть только шаманскими методами) то придётся вычислять значение Chart1->LeftAxis->PositionPercent (это для левой оси) например так: Chart1->LeftAxis->PositionPercent=fabs(Xmin)*100/(Xmax-Xmin), не забыв установить Chart1->LeftAxis->Maximum=Ymax; Chart1->LeftAxis->Minimum=Ymin.
Это сообщение отредактировал(а) Usper - 27.5.2009, 08:56 -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| vudu91 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
Usper, спасибо... зараз попробую и так..
Добавлено через 7 минут и 55 секунд а у меня теперь новый созрел вопрос... а как можно обновить сам Chart например у меня есть кнопка показать и убрать сетку и ColorBox каким я меняю цвет этой сетки
ну цвет меняется только когда я уберу и обратно покажу сетку, а как сделать так чтобы сразу??? |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
То есть поменять цвет сетки просто выбрав его в ColorBox? Воспользоваться обработчиком события OnChange ColorBox'а например.
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| vudu91 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 9.5.2009 Репутация: нет Всего: нет |
Usper, а не посоветуеш как сделать более точно, а то у меня оно проходит не через (0;0) а на приближонно, например (0.3;0.5) и єта погрешность зависит от min и max значений??? |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |