Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2011, 17:35   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию Вывод дерева на форму в графическом режиме

Еще раз всем здрасте, никто мне не может показать пример, как вывести дерева на форме в графическом режиме и причем не повернутом на 90 градусов, т.е. при повороте на 90 градусов оно выглядит так:
Код:
       16
   15
       14
10
      9
   8
      7
А чтоб выглядело так:
Код:
               10
          8             15
      7      9      14    16
CodeNOT вне форума Ответить с цитированием
Старый 20.05.2011, 18:08   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Пример для VS, Windows, GDI прорисовка
Вложения
Тип файла: zip list_03.zip.zip (4.3 Кб, 30 просмотров)
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 21.05.2011, 07:45   #3
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

в принципе вот моя процедура для вывода дерева, дерево только красно-черное:
рисую с помощью канваса на компоненте TImage
Код:
void PrintTree(int right, int left, int h, tree root,TForm1 * Form1){
        //Tree *root = root2->Left;
        //Form1->Image1->Canvas->Pen->Color = RGB(0, 0, 150);
         int x=(right + left)/2;
         int y= h*40;
         Form1->Image1->Canvas->MoveTo(x,y);

         if(root->left != NIL){
           Form1->Image1->Canvas->LineTo((x - right)/2+right, y+40);
           PrintTree(right, x, h+1, root->left,Form1);
         }

         Form1->Image1->Canvas->MoveTo(x,y);
         if(root->right != NIL){
           Form1->Image1->Canvas->LineTo((left - x -1)/2+x, y+40);
           PrintTree(x+1, left, h+1, root->right,Form1);
         }
        int x2 = 0;
        if(abs(root->data)<10){
          x2 = x - 4;
        }
        if((abs(root->data)>=10)&&(abs(root->data)<100)){
          x2 = x - 7;
        }
        if(abs(root->data)>=100){
          x2 = x - 10;
        }
        Form1->Image1->Canvas->Pen->Color = RGB(255, 0, 0);
        if(root->color==0)
        {
                Form1->Image1->Canvas->Brush->Color=clBlack;
                Form1->Image1->Canvas->Font->Color=clWhite;

        }else
        {
          Form1->Image1->Canvas->Brush->Color=clRed;
        }
        if(root->data!=0)
        {
        Form1->Image1->Canvas->Pen->Color=RGB(255,255,255);
        //Form1->Image1->Canvas->Brush->Color = RGB(255, 255, 0);
        Form1->Image1->Canvas->Ellipse(x-15, y-15, x+15, y+15);
        Form1->Image1->Canvas->Pen->Color=clBlue;
        Form1->Image1->Canvas->TextOutA(x2, y-7, IntToStr(root->data));
        Form1->Image1->Canvas->Pen->Color = RGB(0, 0, 150);
        }
        }
Может кому понадобиться
CodeNOT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод в графическом режиме MeTeOpA Общие вопросы C/C++ 3 19.05.2011 11:09
Вывод дерева на форму в c++ builder CodeNOT C++ Builder 1 15.05.2011 16:10
Закорючки в графическом режиме _-Re@l-_ Паскаль, Turbo Pascal, PascalABC.NET 4 20.08.2010 10:27
Работа в графическом режиме adgam Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 23.04.2010 17:56