Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 2
Регистрация: 22.01.2012
Сообщений: 21

TChart. Соединить точку с центром координат

22.01.2012, 13:03. Показов 2408. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем добрый день. есть такая проблема: в Chart в нужно строить точки по координатам из таблицы(эта часть работает) и соединить их линиями с центром координатных осей(в этом и есть проблема). Суть проблемы в том, что когда выбирается первая точка в таблице, она нормально соединяется линией с центром, но когда выбираются последующие точки, то получается чёрти что.

Точки задаются сериями SeriesX, SeriesY - TBubbleSeries. Линии для соединения сериями LineX, LineY - TLineSeries. Точки замечательно строятся и с ними нет вообще никаких проблем, вся проблема в построении линий. Точек всего две, пока пытаюсь построить на примере одной.

Код выглядит вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
void T_ADC_ArchiveItem::SetOnPolarGraph(TBubbleSeries* SeriesX, TBubbleSeries* SeriesY,
                                        TLineSeries* LineX, TChart* Chart, unsigned int HistoryPoints)
{
        double X_x_coord,X_y_coord, Y_x_coord,Y_y_coord;
        double X_Max, Y_Max, X_Min, Y_Min;
 
          //Добавляем точки к диаграмме
          SeriesX->AddBubble(X_x_coord, X_y_coord, 1, "", clRed);
          SeriesY->AddBubble(Y_x_coord, Y_y_coord, 1, "", clBlue);
 
          //Добавляем линии
 
          LineX->AddXY(X_x_coord,X_y_coord,"",clRed);
          LineX->AddXY(0,0,"",clRed);
 
          //Удаляем старую точку и линию
 
          if(SeriesX->XValues->Count()>HistoryPoints)
          {
 
            SeriesX->XValues->Delete(0);
            SeriesX->YValues->Delete(0);
            SeriesX->RadiusValues->Delete(0);
 
            LineX->XValues->Delete(0);
            LineX->YValues->Delete(0);
          }
 
          if(SeriesY->XValues->Count()>HistoryPoints)
 
          {
            SeriesY->XValues->Delete(0);
            SeriesY->YValues->Delete(0);
            SeriesY->RadiusValues->Delete(0);
          }
 
          //Устанавливаем масштаб равный по осям, коорд. 0,0 в центре диаграммы
          Y_Min = 1.1*min(SeriesX->YValues->MinValue, SeriesY->YValues->MinValue);
          X_Min = 1.1*min(SeriesX->XValues->MinValue, SeriesY->XValues->MinValue);
 
          Y_Max = 1.1*max(SeriesX->YValues->MaxValue, SeriesY->YValues->MaxValue);
          X_Max = 1.1*max(SeriesX->XValues->MaxValue, SeriesY->XValues->MaxValue);
 
          MaxBoundary = sqrt(pow((double)max(fabs(Y_Min), fabs(Y_Max)), (double)2) +
                        pow((double)max(fabs(X_Min), fabs(X_Max)), (double)2));
 
          Chart->LeftAxis->SetMinMax(-MaxBoundary,MaxBoundary);
          Chart->BottomAxis->SetMinMax(-MaxBoundary,MaxBoundary);
 
          //Масштабируем точки
          for(int i = 0; i < SeriesX->RadiusValues->Count(); i++)
          {
            SeriesX->RadiusValues->Value[i] = ((float)i/(float)HistoryPoints+1)*MaxBoundary/30;
            SeriesY->RadiusValues->Value[i] = ((float)i/(float)HistoryPoints+1)*MaxBoundary/30;
          }
 
          Chart->Refresh();
 
        }
}
На первом рисунке выбрана первая точка в таблице. На втором - что получается при выборе последующих точек. Суть в том, что линия просто должна соединить центр координат с точкой, как на первом рисунке.

Помогите пожалуйста решить проблему
Миниатюры
TChart. Соединить точку с центром координат  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2012, 13:03
Ответы с готовыми решениями:

Определить, можно ли через точку (x,y) провести окружность единичного радиуса с центром в начале координат
Даны два числа x и y. Можно ли через точку (x,y) провести окружность единичного радиуса с центром в начале координат. помогите решить эту...

Найти площадь сектора, ограниченного 3 и 4 координатными четвертями, и окружностью с центром в начале координат, проходящей через точку
Составить словесное (математическое) описание и блок-схему следующей задаче: найти площадь сектора, ограниченного 3 и 4 координатными...

Найти точку координат на окружности имея начальную точку и расстояние
Здравствуйте. Есть точка с известными координатами A(a, b, c) и есть точка с неизвестными координатами B(x, y, z) обе лежат на...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2012, 13:03
Помогаю со студенческими работами здесь

Построить цилиндр с центром не в начале координат
Здравствуйте! Нужно построить Цилиндр повернутый, основание которого параллельно плоскости Oxz, и с центром не в начале координат, а в...

Определить кольцо с центром в начале координат
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости .Они распологаются в следующем порядке...

Нарисовать ромб с центром на оси координат
Здравствуйте нужна помощь(!. Нам задали сделать рисунок (у меня рисунок ромба с центром на оси координат). Дело в том что мы еще такое не...

Определить кольцо с центром в начале координат
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем...

построить окружность радиуса r с центром в начале координат
Хелп)) построить окружность радиуса r с центром в начале координат(экранных): x:=r cos(t) y:=r sin(t) t принадлежит З.Ы. p...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru