Написать фигуру пропеллера

вот есть код что помогли

#define _USE_MATH_DEFINES
#include <vcl.h>
#include <cmath>
#pragma hdrstop
#ifndef M_PI
#define M_PI 3.1415926535897932384626433832795
#endif
#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner){}

static HBRUSH  g_brush = NULL;
static HBITMAP g_bmp   = NULL;
static HDC     g_hdc   = NULL;
static int     g_size  = 0;

void __fastcall TForm1::FormCreate(TObject *Sender){
        g_brush = CreateSolidBrush(RGB(0, 0, 0));
        g_size  = Width / 2;
        g_bmp   = CreateCompatibleBitmap(Canvas->Handle, g_size, g_size); 
        g_hdc   = CreateCompatibleDC(Canvas->Handle);
        SelectObject(g_hdc, g_bmp);

        Timer1->Enabled  = true;
        Timer1->Interval = 80;
}

void __fastcall TForm1::Timer1Timer(TObject *Sender){
    POINT dots[3];
    int   pos    = g_size / 2;
    int   radius = pos - 4;

    RECT rc = { 0, 0, g_size, g_size };

        FillRect(g_hdc, &rc, g_brush);
        Ellipse(g_hdc, pos - radius, pos - radius, pos + radius, pos + radius);
        HGDIOBJ old = SelectObject(g_hdc, g_brush);

        double theta;
        double step  = 360.0 / 8.;
        double off   = (double)GetTickCount() / 20.;
        //рисуем пропеллеры
        for(int i = 0; i < 4; ++i){
                theta = off * (M_PI / 180.);
                dots[0].x = dots[0].y = pos;
                dots[1].x = pos + radius * std::cos(theta);
                dots[1].y = pos + radius * std::sin(theta);

                theta = (off + step) * (M_PI / 180.);
                dots[2].x = pos + radius * std::cos(theta);
                dots[2].y = pos + radius * std::sin(theta);

                Polygon(g_hdc, dots, sizeof(dots)/sizeof(dots[0]));
                off += step * 2.;
        }
        SelectObject(g_hdc, old);
        //выводим на форму
        BitBlt(Canvas->Handle, (Width - g_size)/2, (Height - g_size)/2, 
               g_size, g_size, g_hdc, 0, 0, SRCCOPY);
}

void __fastcall TForm1::FormDestroy(TObject *Sender){
        DeleteObject(g_brush);
        DeleteObject(g_bmp);
        DeleteDC(g_hdc);
}

Господи, когда ты научишь этих [censored] правильно оформлять код в посте?! Уж даже над окошком специально написано КАК это надо делать.

А зачем напрягаться? Добрый дядя придёт и поправит оформление кода ((

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.