Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 1

рекурсивная отрисовка в picturebox

19.12.2012, 01:49. Показов 1336. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно нарисовать бинарное дерево picturebox в winows forms (С++ visual studio)
в общем он у меня рисует адекватно только до 5-того уровня... ниже начинает сливаться, наезжать друг на друга и т.д.
мне нужно как то в зависимости от высоты дерева отрисовать его ровно в экран, подгоняя размеры... не могу додуматься на какие коэффициенты с каждом шагом делить...

вот что есть:

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
             void put(Graphics^ G,int x,int y,int m, BinTree *to, int h)
             {
                     int r= (160)/h;
                     float sdvx=(float)4+5/m,sdvy;
                     sdvy=pow((float)100-pow(sdvx,2),(float)1/2);
                    // int N=160;
                    // if (n<5)
                    //       n=n*(h+4);
                     String ^ result;
    // на это не смотрите, это особенности программы))...............................
                     if (to->symbol!='#' && to->symbol!='%')
                     {
                             char *res1;
                             res1 = new char[3];
                             res1[0] = to->symbol;
                             res1[1] = '/';
                             res1[2] = '\0';
                             string res2 = (string)(res1);
                             result = StdToSys(res2);
                             result= result + System::Convert::ToString(to->ver);
                     }
                     else
                     {
                             result= result + System::Convert::ToString(to->ver);
                     }
    //...................................................................................
                     G->DrawString(result,gcnew System::Drawing::Font("Arial", 7, FontStyle::Bold),gcnew SolidBrush(Color::Black),(float)x+3,(float)y+2);
                     G->DrawEllipse (System::Drawing::Pens::Blue,x,y,20,20);
                     m=m*2;
                     if(to->left!=NULL)
                     {
                             G->DrawLine(System::Drawing::Pens::Green,(float)x+10-sdvx,(float)y+10+sdvy,(float)x-500/m+10+sdvx,(float)y+85-sdvy);
                             put(G,x-500/m,y+75,m,to->left, h);
                     }
                     if(to->right!=NULL)
                     {
                             G->DrawLine(System::Drawing::Pens::Green, (float)x+10+sdvx,(float)y+10+sdvy,(float)x+500/m+10-sdvx,(float)y+85-sdvy);
                              put(G,x+500/m,y+75,m,to->right, h);
                     }
             }
буду рад помощи.



p.s. в моём случае в бинарном дереве максимальная высота может быть 10...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2012, 01:49
Ответы с готовыми решениями:

Отрисовка picturebox
У меня есть 5 picturebox , которые изначательно невидимые (visible - false) . В течении программы некоторые появляются , появляются без...

Отрисовка кривых в PictureBox
Подскажите, есть код отрисовки кривых, но работает не совсем корректно. using System; using System.Collections.Generic; using...

Отрисовка примитивов PictureBox
Здравствуйте! Нужда заставила разобраться с принципом рисования элементарных примитивов двумерного пространства в C# .NET. И вот в самом...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2012, 01:49
Помогаю со студенческими работами здесь

Отрисовка линий в pictureBox
Собственно проблема такая - после того, как отпускаю кнопку мыши - линия пропадает public partial class Editor : Form { ...

Отрисовка текста в PictureBox
Я хочу нарисовать текст в PictureBox(чтобы сохранялся потом..) На форуме microsoft нашёл код, который рисует в Windows Form, как ни...

Медленная отрисовка отрезков в PictureBox
Здравствуйте, есть такая проблема. Необходимо сделать так чтобы отрезки появлялись попиксельно на экране (как будто карандашем чертишь). ...

Отрисовка picturebox при загрузке
При загрузке формы в picturebox сразу должна происходить прорисовка, чего не происходит. Пробовал так: public Form1() { ...

Отрисовка изображения в в определенных координатах на PictureBox
Всем доброго времени суток. Такая вот делема: на имеющийся на форме picturebox необходимо загрузить несколько изображений, при чем каждое...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный отбор элементов справочника Номенклатура по группе 1С
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника Сотрудники по перечислениям 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru