Понедельник, 13.05.2024, 19:40
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Категории раздела
Форма входа
ДРУЗЬЯ САЙТА

Вызвать мастера в Красноярске

8 983 207 5474

8 902 918 9334

8 933 332 3164

---------------------------------

Запчасти бытткхники

  • Велес т.2935600
  • СЦ Близнецов т.2296595
  • Вираж
  • Красраб 110 т.2589503
  • Комплекстур Щорса30 т.2606797
  • Радиодетали

  • Якорный 9 т.2688317
  • Воронова 16 т.2202990
  • Красраб 125а т.2456544
  • Профи т.2702737
  • Дайте две т.+79237713323
  • Электрика

  • Электро +
  • Планета электрика
  • ЗАКЛАДКИ
    Поиск
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Главная » Статьи » C++ Builder » Консоль

    Графика в консоли с++ Builder 6

    Графика в консоли с++ Builder 6

    Используются функции GDI API Windows 

    Если окно консоли перекрыть другим окном графика не стирается

    а если изменить размер окна консоли графика стирается

    Доступен весь спектр функций GDI перья кисти примитивы шрифты

    регионы но нужно ли это 

    Хороший материал изложен здесь

    =

    =

    //---------------------------------------------------------------------------
    #include <iostream>
    #include <windows.h>
    #include <math.h>
    #include <conio>
    #include <vcl.h>
    #pragma hdrstop
    using namespace std;
    //---------------------------------------------------------------------------

    #pragma argsused
    int main(int argc, char* argv[])
    {
        SetConsoleCP(1251);
       SetConsoleOutputCP(1251);
      // system("cls");  //очистка окна
      // system("mode con cols=160 lines=65"); //размер окна

         cout << "Программа строит графические примитивы \n";
         cout << "Программа строит график синусоиды \n";
         cout << "Программа строит спираль Пифагора \n";

    //    HWND handle = FindWindow("ConsoleWindowClass", NULL)

        HWND handle = GetConsoleWindow();
        HDC hdc = GetDC(handle);

        RECT rect;
        int width;
        int height;
      //  GetWindowRect(handle, &rect);
        GetClientRect(handle, &rect);
        width = rect.right - rect.left ;
        height = rect.bottom - rect.top;
          
        cout << "width   "<< width <<endl;
        cout << "height   "<< height <<endl;

        HPEN hpen, hpenOld;
        HBRUSH hbrush, hbrushOld;
        //Создаем зеленое перо.
        hpen = CreatePen(PS_SOLID, 2, RGB(0, 255, 0));
        //Создаем красную кисть .
        hbrush = CreateSolidBrush(RGB(255, 0, 0));

        //новое перо и кисть в контекст,, текущие перо и кисть запоминаем
        hpenOld = SelectObject(hdc, hpen);
        hbrushOld = SelectObject(hdc, hbrush);

        Rectangle(hdc, 800,100,1000,200 );

        MoveToEx(hdc,700, 10,0);
        LineTo(hdc,750, 300);

          //синусоида
          int sf=400; //смещение
          int a=100; //амплитуда
          int f=20;  // частота
       for(float i=-400; i<500; i++){
          float y= sf- sin(i/f )*a;
        SetPixel(hdc, sf+i, y, RGB(0, 255, 0));
        SetPixel(hdc, sf+ i+1,y+1, RGB(0, 255, 0));
                      }
                       
       // спираль пифагора
       int  r_max = 300;
       int  n = 12;
       cout << "Введите число диаметр спирали: ";
       cin >> r_max;    int sm=r_max+100;
       cout << "Введите число количество витков: ";
       cin >> n;

      int   k;
      double  x, y, r, T;
      k = n * 500;         
        for (int i = 0; i< k; i++)
        {
          T = (n * 2 * M_PI) * i / k;
          r = T / (n * 2 * M_PI) * r_max;
          x = floor(r * cos(T));
          y = floor(r * sin(T));
           SetPixel(hdc,sm+x ,sm- y, RGB(255, 0, 255)); //жирная точка
           SetPixel(hdc,sm+x+1 ,sm- y+1, RGB(255, 0, 255));
         }
         
         getch();//
        //При выходе следующие функции обязательны
        //сохраненные перо и кисть в контекст наши не нужные перо и кисть удаляем
        SelectObject(hdc, hpenOld);
        DeleteObject(hpen);

        SelectObject(hdc, hbrushOld);
        DeleteObject(hbrush);
        // Функция ReleaseDC освобождает контекст устройства  (DC)  для использования другими приложениями.
        ReleaseDC(handle, hdc);
            return 0;
    }
    //---------------------------------------------------------------------------

     

    =

    =

    Категория: Консоль | Добавил: doka (12.10.2020)
    Просмотров: 1237 | Рейтинг: 0.0/0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]