Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 14

По списку точек в ListBox нарисовать график

11.01.2016, 12:11. Показов 949. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Была задача написать программу консольную, это я сделал, но потом, попросили еще сделать красивую форму, о которых раньше вообще не знал, сидел читал, вопрос таков : есть некая фигура (выпуклая,невыпуклая - без разницы, главное вершины), в консольном коде это выглядит так(точки - вершины с координатами Х и У):
C++
1
2
3
4
5
6
     point P[n]={
          {-15,9},      
          {-15,25},     
          {10,25},      
           {10,8},     
           {0,5}
Но хоть убей не могу понять как сделать через ListBox (кнопки добавление - удаление есть, есть ограничения на ввод только цифр) Есть идея вот такая,но тут ошибки,ошибки и ошибки....
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   // Число точек 
  int n = ListBox1->Items->Count;
  point* poligon = new Point[n];
  for(int i = 0; i < n; i++) {
     // Получаем строку списка
     char str[80];
     strcpy(str, ListBox1->Items->Strings[i].c_str() );
     // Преобразуем координаты из строки в число
     point p;
     sscanf(str, "%d,%d", &p.x, &p.y);
     poligon[i] = p;
  }
  // Работаем с фигурой
  if (Convex(n, polygon) {
     Label1->Text = "Фигура выпуклая";
     Label1->Font->Color = clBlack;
  } else {
     Label1->Text = "Фигура не выпуклая";
     Label1->Font->Color = clRed;
  }
  // Удаляем фигуру
  delete[] poligon;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.01.2016, 12:11
Ответы с готовыми решениями:

Как нарисовать график с разбросом точек
Можно ли нарисовать график с разбросом точек если имеется массив точек Xi и Yi ? Нашел только с линиями, примерно вот такой

Как нарисовать график массива точек x[i]?
program Project1; {$APPTYPE CONSOLE} uses SysUtils; const h=0.01; mu=0.1; n=100; var Fitm1:real; x: array of real;...

Нарисовать флаг, нарисовать график y=ctg x Нарисовать анимацию
Дело таково у меня сейчас практика, где я очень не успиваю сделать все свои задания... Большая просьба кто готов помочь, пишите а кто...

11
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,153
Записей в блоге: 3
11.01.2016, 12:27
Цитата Сообщение от Litrein Посмотреть сообщение
выпуклая,невыпуклая
еще говорят "Впуклая" ....на сам деле правильно "Вогнутая" = ).

Немного непонятна Ваша идея с TListBox, можно немного конкретики или какойнить шарж?
1
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 14
11.01.2016, 12:35  [ТС]
Есть Edit, куда через пробел вводят вершины, кнопка - Добавить точку, перемещает ее в ListBox, ну и есть кнопка удалить. Т.е получается такой же список точек, как и в консольном коде, но уже в ListBox.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.01.2016, 12:54
Считать точки можно так:
C++
1
2
3
4
5
6
7
8
9
10
  int n = ListBox1->Items->Count;
  TPoint* poligon = new TPoint[n];
  for(int i = 0; i < n; i++) { 
    poligon[i].x = ListBox1->Items->Strings[i].SubString(1, 
                    ListBox1->Items->Strings[i].Pos(",")-1).ToInt();
    poligon[i].y = ListBox1->Items->Strings[i].SubString(
                    ListBox1->Items->Strings[i].Pos(",")+1,
                    ListBox1->Items->Strings[i].Length()).ToInt();
                                    
  }
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 14
11.01.2016, 13:19  [ТС]
Отлично, но я только начал изучать эти формы, получается -1 и +1 это символ расположенный справа или слева от запятой?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
11.01.2016, 13:28
Цитата Сообщение от Litrein Посмотреть сообщение
-1 и +1 это символ расположенный справа или слева от запятой?
Это смещение позиции "курсора"
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 14
11.01.2016, 15:04  [ТС]
Все понятно, точки считали, и как их вставить в консольный код?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
11.01.2016, 15:38
В консольный уже не получится, нужно переделывать под окна
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 14
11.01.2016, 15:44  [ТС]
я думал просто будет, сделать кнопку проверить, и в этой,собственно, кнопке и будет сам код...вот блин..
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
11.01.2016, 15:51
Нее, ну смотря что вы понимаете под консолью , для кого-то это просто программка с черным экраном, а для кого-то целая эпоха

Суть-то вашей проги в чем? Вывести на форму вашу фигуру ?
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 14
11.01.2016, 16:07  [ТС]
Кто-то вводит те самые вершины, а программка простенькая, определяет фигуру и соответственно выпуклая она или нет. Все по кнопкам раскидал уже, а вот с основным кодом....Как раз и думал что визуально это будет так :

ListBox (куда записываются координаты) Edit(куда вводятся координаты,только цифры, отделяются запятой)
Ну и кнопочки Добавить,Удалить точку,ну, и проверить, т.е весь процесс происходит в кнопке Проверить (разумеется, в зависимости от ситуации будет разный итог и вывод через Label).
Вложения
Тип файла: rar Project1.rar (221.1 Кб, 4 просмотров)
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 14
13.01.2016, 15:03  [ТС]
Получается,эти координаты используются в цикле - это в консольном,в форме:
В ListBox имеем записанные координаты, есть идея,выше описанная (nick42), но как эти же координаты использовать в том же цикле, но уже из ListBoх?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2016, 15:03
Помогаю со студенческими работами здесь

Привязка listbox к списку своих объектов
Добрый день. Подскажите пожалуйста, как сделать так, чтобы список на форме(listbox) обновлялся вместе с List&lt;мойкласс&gt;? Нагуглил...

Как нарисовать много точек, если в классе Graphics рисование точек не предусмотрено вообще?
Делаю свой граф. редактор. В нем нужно линии строить так, чтобы они состояли из точек. DrawPoint в классе Graphics нет, как быть? если...

График к рандомному списку
Здравствуйте! Помогите пожалуйста, нужно сделать что бы на графике(pictureBox) отображался график к списку случайных чисел. Заранее...

Сделать так чтобы график имел координатнаую сетку, и график был в виде точек, а не кривой
сделать так чтобы была координатная сетка, и график был в виде точек, а не кривой {$R-} uses graph; function F(x:real):real; begin ...

Как обратиться к списку ListBox, чтобы каждая запись в нем была как отдельный элемент?
Подскажите пожалуйста как обратиться к списку ListBox, чтобы каждая запись в нем была ка отдельнычй элемент. Например В спискок...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru