Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Написать фигуру пропеллера, Написать на С++ фигуру 
:(
    Опции темы
wall33
Дата 2.12.2015, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.12.2015

Репутация: нет
Всего: нет



Вот такую фигуру нужно написать на С++. Помогите кто не будь 

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  Безымянный.jpg 23,11 Kb
PM MAIL   Вверх
borisbn
Дата 5.12.2015, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



На Си++ фигуры не пишутся (как, впрочем, и на других языках). На ЯП пишутся программы.
Правильно ли я понял, вам нужно написать программу, которая рисует данную фигуру ?
Вот программа на вымышленном языке, которая делает то, что вам нужно. Вам остаётся только перевести её на Си++
Код

canvas.setColor( black );
canvas.drawRectangle( left = -1, top = 1, right = 1, bottom = -1 );
canvas.setColor( white );
canvas->drawCircle( center_x = 0, center_y = 0, radius = 1 );
canvas.setColor( black );
double Pi = acos( -1 );
double x45 = cos( 45.0 / 180.0 * Pi );
double y45 = sin( 45.0 / 180.0 * Pi );
canvas.drawTriangle( x0 = 0, y0 = 0, x1 = 0, y1 = 1, x2 = x45, y2 = y45 );
canvas.drawTriangle( x0 = 0, y0 = 0, x1 = 1, y1 = 0, x2 = x45, y2 = - y45 );
canvas.drawTriangle( x0 = 0, y0 = 0, x1 = 0, y1 = -1, x2 = - x45, y2 = - y45 );
canvas.drawTriangle( x0 = 0, y0 = 0, x1 = -1, y1 = 0, x2 = - x45, y2 = y45 );


Добавлено через 1 минуту и 42 секунды
Цитата(wall33 @  2.12.2015,  15:49 Найти цитируемый пост)
 кто не будь  

лутше сночала радной язик выучеть, а патом ужэ Цэ плюс плюс


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
wall33
Дата 10.12.2015, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.12.2015

Репутация: нет
Всего: нет



#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);
}

Добавлено через 1 минуту и 34 секунды
Пишет неизвестные элементы 
В чем ошибка подскажите 

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);
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.