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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2015, 14:19   #1
wall33
Пользователь
 
Регистрация: 30.10.2015
Сообщений: 19
По умолчанию

Всем привет есть нюансы помогите исправить

есть код восьмиугольника нужно переделать под вентилятор подскажите как
Код:
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
		Graphics::TCanvas* a = ((TPaintBox*)Sender)->Canvas;
		a->Brush->Style = bsSolid;
		a->Pen->Style = psSolid;

		a->Brush->Color = RGB(255, color1G, 0);
		a->Pen->Color = a->Brush->Color;
		a->Ellipse(posX, posY, posX + R, posY + R);

		double cx = posX + R / 2;
		double cy = posY + R / 2;
		double cr = R / 2;
		double pi4 = pi / 2;
		double pi8 = pi / 4;

		a->Brush->Color = RGB(0, color2G, color2B);
		a->Pen->Color = a->Brush->Color;
		a->PenPos = Point(cx + cos(r1) * cr, cy + sin(r1) * cr);
		a->LineTo(cx + cos(r1 + 1 * pi4) * cr, cy + sin(r1 + 1 * pi4) * cr);
		a->LineTo(cx + cos(r1 + 2 * pi4) * cr, cy + sin(r1 + 2 * pi4) * cr);
		a->LineTo(cx + cos(r1 + 3 * pi4) * cr, cy + sin(r1 + 3 * pi4) * cr);
		a->LineTo(cx + cos(r1 + 0 * pi4) * cr, cy + sin(r1 + 0 * pi4) * cr);
		a->FloodFill(cx, cy, a->Brush->Color, fsBorder);

		cr *= sqrt(2) / 2;

		a->Brush->Color = RGB(255, color1G, 0);
		a->Pen->Color = a->Brush->Color;
		a->PenPos = Point(cx + cos(r2) * cr, cy + sin(r2) * cr);
		a->LineTo(cx + cos(r2 + 1 * pi8) * cr, cy + sin(r2 + 1 * pi8) * cr);
		a->LineTo(cx + cos(r2 + 2 * pi8) * cr, cy + sin(r2 + 2 * pi8) * cr);
		a->LineTo(cx + cos(r2 + 3 * pi8) * cr, cy + sin(r2 + 3 * pi8) * cr);
		a->LineTo(cx + cos(r2 + 4 * pi8) * cr, cy + sin(r2 + 4 * pi8) * cr);
		a->LineTo(cx + cos(r2 + 5 * pi8) * cr, cy + sin(r2 + 5 * pi8) * cr);
		a->LineTo(cx + cos(r2 + 6 * pi8) * cr, cy + sin(r2 + 6 * pi8) * cr);
		a->LineTo(cx + cos(r2 + 7 * pi8) * cr, cy + sin(r2 + 7 * pi8) * cr);
		a->LineTo(cx + cos(r2 + 0 * pi8) * cr, cy + sin(r2 + 0 * pi8) * cr);
		a->FloodFill(cx, cy, a->Brush->Color, fsBorder);
}

Последний раз редактировалось Stilet; 28.11.2015 в 14:22.
wall33 вне форума Ответить с цитированием
Старый 28.11.2015, 14:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
переделать под вентилятор
Это как оно должно выглядеть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.11.2015, 14:26   #3
wall33
Пользователь
 
Регистрация: 30.10.2015
Сообщений: 19
По умолчанию

вот такой пропеллер
Изображения
Тип файла: jpg Безымянный.jpg (23.1 Кб, 122 просмотров)
wall33 вне форума Ответить с цитированием
Старый 28.11.2015, 14:49   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Зачем тут вообще восьмиугольник? Вижу всего две фигуры (если не считать квадрата). Рисуем вписанную в квадрат закрашенную окружность и четыре обращения к функции рисования треугольника с разными координатами углов с вершиной в центре окружности.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.11.2015, 14:58   #5
wall33
Пользователь
 
Регистрация: 30.10.2015
Сообщений: 19
По умолчанию

ну так помоги как исправить
wall33 вне форума Ответить с цитированием
Старый 28.11.2015, 15:14   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от wall33 Посмотреть сообщение
ну так помоги как исправить
А что тут исправлять? Тут заново всё переписывать нужно. Это как минимум пол дня займёт. Стар я, благотворительностью заниматься.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.11.2015, 20:21   #7
wall33
Пользователь
 
Регистрация: 30.10.2015
Сообщений: 19
По умолчанию

ну помогите очень надо
wall33 вне форума Ответить с цитированием
Старый 28.11.2015, 20:26   #8
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от wall33 Посмотреть сообщение
ну помогите очень надо
Надо так делайте. "Помогите"!="Сделайте за меня"
Streletz вне форума Ответить с цитированием
Старый 28.11.2015, 20:44   #9
Александр3
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 52
По умолчанию

Немного не разбираюсь в твоём коде, но тебе нужно описать 13 точек . Могу просто написать без вращения фигуры, но всё равно переделывать придётся. Есть функция Polygon
TPoint poin[13];
poin[0]=Point();
poin[1]=PointPoint();//тут также указываешь координаты
poin[2]=PointPoint();
poin[3]=PointPoint();
....
Canvas->Polygon(poin,12);

Последний раз редактировалось Александр3; 28.11.2015 в 21:02.
Александр3 вне форума Ответить с цитированием
Старый 28.11.2015, 21:14   #10
wall33
Пользователь
 
Регистрация: 30.10.2015
Сообщений: 19
По умолчанию

спасибо за помощь
wall33 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль Не получаеться дописать прогу помогите ПЛИЗ ученик91 Помощь студентам 3 08.12.2009 19:50
Дописать прогу. vetalij Общие вопросы C/C++ 9 16.10.2009 23:37
Помогите дописать прогу на делфи fox7 Помощь студентам 3 16.06.2007 23:44