Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 17

Закрасить звезду

28.05.2013, 23:57. Показов 1710. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста закрасить звезду. Я сбрасываю код программы там нарисована звезда я не часов зафорбуваты ее.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "sButton"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
float rotation=0;
float plane=0;
float distance=1;
class TFPoint
{
public:
float X;
float Y;
float Z;
};
// Çàäàºìî êîîðäèíàòè ç³ðêè
TFPoint StarPoints[]=
        {
        {-100, 173, 153},
        { 200, 0  , 153},
        {-100,-173, 153},
        {-100, 173,-166},
        { 200,   0,-166},
        {-100,-173,-166},
        {  40,  57,   0},
        { -70,   6,   0},
        {  30, -63,   0},
        };
int lines[12][2]=
        {
        {0,6},
        {1,6},
        {2,8},
        {1,8},
        {2,7},
        {0,7},
        {4,6},
        {4,8},
        {5,8},
        {5,7},
        {3,6},
        {3,7}
        };
TFPoint XYZtoXY(float x,float y,float z)
{
//Âèðàõîâóýìî â³äñòàíü äî öåíòðà êîëà
float radius=sqrt(x*x+y*y);
radius*=distance;
//Îá÷èñëþºìî ïåðøèé êóò
float angle=0;
if(x==0)angle=atan(1000000);else angle=atan(y/x);
if(x<0)angle+=M_PI;
//Îáåðòàííÿ îáºêòà
angle+=rotation;
//Âèðàõîâóºìî íîâ³ êîîðäèíàòè
float realX=radius*cos(angle);
float realZ=radius*sin(angle);
float realY=z;
//Âèçíà÷àºìî íîâå â³äñòàíü â³ä öåíòðó
radius=sqrt(realY*realY+realZ*realZ);
radius*=distance;
//Îá÷èñëþºìî äðóãèé êóò
if(realZ==0)angle=atan(1000000);else angle=atan(realY/realZ);
if(realZ<0)angle+=M_PI;
 
//Äîäàºìî êóò íàõèëó ïåðåð³çó
angle+=plane;
 
//îá÷èñëþºìî êîîðäèíàòè äëÿ åêðàíó
TFPoint point;
point.X=realX;
point.Y=radius*sin(angle);
point.Z=radius*cos(angle);
 
//Òóò ìè öåíòðóºìî ïîëîæåííÿ îá'ºêòó
point.X+=420;
point.Y+=305;
return point;
}
void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift,
      int WheelDelta, TPoint &MousePos, bool &Handled)
{
distance+=WheelDelta/1000.0;
DrawPoints();
}
//////---------------------------------------------------------------------
void TForm1::DrawPoints()
{
TFPoint point1,point2;
Canvas-> Pen->Width=6;
Canvas->Brush->Color=clWindow;
Canvas->FillRect(Form1->GetClientRect());
Canvas->Brush->Color=RGB(random(255),random(255),random(255));
Canvas->Pen->Color=RGB(random(255),random(255),random(255));
 
for(int i=0;i<12;i++)
        {
point1=XYZtoXY(StarPoints[lines[i][0]].X,StarPoints[lines[i][0]].Y,StarPoints[lines[i][0]].Z);
point2=XYZtoXY(StarPoints[lines[i][1]].X,StarPoints[lines[i][1]].Y,StarPoints[lines[i][1]].Z);
Canvas->MoveTo(point1.X,point1.Y);
Canvas->LineTo(point2.X,point2.Y);
Canvas->FillRect(Rect(point1.X-4,point1.Y-4,point1.X+4,point1.Y+4));
Canvas->FillRect(Rect(point2.X-4,point2.Y-4,point2.X+4,point2.Y+4));
}
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
rotation+=(420-X)/5000.0;
plane=-(305-Y)/100.0;
DrawPoints();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::sButton1Click(TObject *Sender)
{
Close();
}
Добавлено через 6 минут
LK, Привет помоги пожалуйста. В программе зарисовать фигуру.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2013, 23:57
Ответы с готовыми решениями:

Нарисовать звезду
Мне нужно нарисовать звезду, а я не знаю, как это сделать...? Мне нада нарісавать звєзду і я нізнаю как ета здєлать...?

Нарисовать звезду и квадрат
Напишите код для фигуры Звезда а внутри квадрат

Нарисовать закрашенную пятиконечную звезду
Здравствуйте! Есть задание: нужно в консоле нарисовать пятиконечную закрашенную звезду. Вот мой код: HBRUSH brushStar =...

2
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
28.05.2013, 23:59
чтобы такого:
//Äîäàºìî êóò íàõèëó ïåðåð³çó
и такого
void TForm1rawPoints()
не было, используйте тег вставки кода С++ - кнопка С++ на панели редактора сообщений
C++
1
2
3
4
5
// чтобы такого:
//Äîäàºìî êóò íàõèëó ïåðåð³çó
// и такого
void TForm1:DrawPoints()
// не было
Краткое руководство по работе с классом TCanvas для начинающих
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
29.05.2013, 03:22
Цитата Сообщение от Віталік777 Посмотреть сообщение
закрасить звезду
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
  TPoint points[6];
  points[0] = Point(140,10);
  points[1] = Point(120,60);
  points[2] = Point(170,30);
  points[3] = Point(110,30);
  points[4] = Point(160,60);
  points[5] = Point(140,10);
  PaintBox1->Canvas->Pen->Color = clBlue;
  PaintBox1->Canvas->Brush->Color = clYellow;
  PaintBox1->Canvas->Polygon(points,5);
}
Миниатюры
Закрасить звезду  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2013, 03:22
Помогаю со студенческими работами здесь

Нарисовать пятиконечную звезду для флага
Нужно нарисовать пятиконечные звезды для флага. Я уже видел на форуме подобные темы, но не один не подошёл. Я оставлю свой код, чтобы если...

Закрасить область
Всем привет, прошу прощения заранее, если создал тему не в том разделе. В общем хотел спросить, как на графике закрасить нужную область....

Закрасить строку в TStringGrid
Здравствуйте. Подскажите пожалуйста, как сделать так, чтобы при нажатии на требуемую строку TStringGrid правой кнопкой мыши она...

Закрасить строки в Stringgrid
Добрый вечер! Помогите плиз... Прежде чем тыкать меня в поиск скажу - все переискал, ничего не понял... Много кодов, мало понимания......

Закрасить Label цветом
Нужно закрасить Label цветом. Такой код не работает. Label1-&gt;FontColor = clBlack; Пишет ошибку Undefined symbol 'clBlack'. Может надо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru