Загрузка...

Не рисуется Окружность

Тема в разделе C/C++ создана пользователем egorikkfn 14 май 2024. 182 просмотра

  1. egorikkfn
    egorikkfn Автор темы 14 май 2024 люблю/ненавижу вышмат 114 4 дек 2021
    Всем привет,делаю работу по выводу фигур в консоли на C++
    Трапецию нарисовал(думал что она труднее чем окружность)
    но окружность с моими параметрами не выводится(я думаю дело в моем конструкторе Circle.Хз даже,потому что если захардкодить(поставить интовые значения вместо задаваемых параметров) то все норм выводится
    Figure.h
    C
    #pragma once
    #include <iostream>
    #include <windows.h>
    #include<windowsx.h>
    using namespace std;

    const int NotUsed = system("color F0");// цвет фона окна
    class Figure {// базовый класс
    public:

    Figure() : x0(0), y0(0), R(0){};
    Figure(int _x0, int _y0, int _R, COLORREF _background, COLORREF _border) :
    x0(_x0), y0(_y0), R(_R), background(_background), border(_border) {
    hwnd = GetConsoleWindow();
    hdc = GetDC(hwnd);
    GetClientRect(hwnd, &rt);
    }
    virtual void show();
    virtual void hide();
    virtual void move(int, int);
    ~Figure() { ReleaseDC(hwnd, hdc); };
    protected:
    int x0, y0;
    int R;
    HWND hwnd;
    HDC hdc;
    RECT rt;
    COLORREF background;
    COLORREF border;

    };
    Figure.cpp

    C
    #include"Figure.h"
    void Figure::show() {}
    void Figure::hide() {}
    void Figure::move(int, int) {}
    Circle.h

    C
    #include "Figure.h"

    class Circle :public Figure {
    private:
    int x0, y0;
    int R;
    public:
    Circle(int new_x0, int new_y0, int new_R, COLORREF new_bkgrnd, COLORREF new_border) :
    Figure(new_x0, new_y0, new_R, new_bkgrnd, new_border) {};
    void show() override;
    };


    Circle.cpp

    C
    #include "Figure.h"
    #include "Circle.h"
    void Circle::show() {
    HPEN pen = CreatePen(PS_SOLID, 2,border);
    HBRUSH brush = CreateSolidBrush(background);
    SelectObject(hdc, pen);
    SelectObject(hdc, brush);
    Ellipse(hdc,x0-R,y0+R,x0+R,y0-R);
    DeleteObject(pen);
    DeleteObject(brush);
    DeletePen(pen);
    DeleteBrush(brush);
    ReleaseDC(hwnd, hdc);
    }
    main.cpp

    C
    #include "Figure.h"
    #include "Trapezium.h"
    #include "Circle.h"
    #include "Dyn.h"
    int main() {
    SetConsoleTitle((LPCWSTR)L"23VP2_2");
    Dyn d1{ new Circle(100,100,400,RGB(0,89,24),RGB(65,0,8))};
    d1.show();
    Sleep(3600);
    return 0;
    }
     
      \
  2. egorikkfn
    egorikkfn Автор темы 14 май 2024 люблю/ненавижу вышмат 114 4 дек 2021
    я сижу ,знаю что проблема в конструкторе Circle,но хз че сделать
     
      \
  3. God_likeGL
    God_likeGL Layer 1 14 май 2024 Сyицид — это не выход, это наш святой обряд. :duck_knife2: 31 040 30 окт 2018
      \
    1. Посмотреть предыдущие комментарии (0)
    2. egorikkfn Автор темы
      God_likeGL, ,я внатуре думал что он не поможет и даже не спрашивал,но он мне подсказал,спасибо бро!
    3. форум
  4. egorikkfn
    egorikkfn Автор темы 14 май 2024 люблю/ненавижу вышмат 114 4 дек 2021
    "Dyn.h" это динамический массив ,там все хорошо,тк трапецию он выводит
    --- Сообщение объединено с предыдущим 14 май 2024
    бля это я ебанат,у меня члены класса с одинаковыми именами наследовались от Figure.
     
      \
Загрузка...
Top