|
#1
|
|||
|
|||
SOS
пожалуйста помогите с задачей!!!Изобразить круг,разбитый на 16 Секторов,чтобы каждый сектор менял через две секунды цвет!плиз!!!
|
#2
|
||||
|
||||
Круг какого радиуса? Сектора равные, или заданные пользователем? ли взятые случайно? Цвета откуда берутся (случайные или из массива, и как должны менятся)?
Учись правильно ставить задачу. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#3
|
|||
|
|||
пардон, я все же новичок не ругайтесь на меня, пожалуйста...мне стыдно...
радиус любой можно взять, сектора равные, а цвета в любом порядке. |
#4
|
|||
|
|||
Вот. На форме компонент TTimer и TImage с равными шириной и высотой.
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Image1: TImage; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } Angle: Real; CircleRect: TRect; public { Public declarations } SectorCount: Word; Radius: Integer; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin SectorCount := 16; // вот здесь задаётся количество секторов Radius := 100; // а здесь — радиус круга Angle := 2 * Pi / SectorCount; CircleRect := Rect(Image1.Width div 2 - Radius, Image1.Height div 2 - Radius, Image1.Width div 2 + Radius, Image1.Height div 2 + Radius); Randomize(); end; procedure TForm1.Timer1Timer(Sender: TObject); var i: Byte; X_1, X_2, Y_1, Y_2: Real; CurAngle: Real; begin X_1 := Image1.Width / 2 + Radius; Y_1 := Image1.Height / 2; CurAngle := Angle; for i := 1 to SectorCount do begin Image1.Canvas.Brush.Color := Random($00FFFFFF); X_2 := Radius * Cos(CurAngle) + Image1.Width / 2; Y_2 := Image1.Height / 2 - Radius * Sin(CurAngle); Image1.Canvas.Pie(CircleRect.Left, CircleRect.Top, CircleRect.Bottom, CircleRect.Right, Round(X_1), Round(Y_1), Round(X_2), Round(Y_2)); X_1 := X_2; Y_1 := Y_2; CurAngle := CurAngle + Angle; end; end; end. Последний раз редактировалось Nyctos Kasignete, 19.04.2009 в 23:44. |
#5
|
|||
|
|||
а вот еще вопрос...
а можно это как-то через ellipse???пожалуйста помогите, а то мозг уже взрывается от программирования...
|
#6
|
|||
|
|||
morkovka, ну вообще-то именно метод Pie предназначен для рисования секторов... Чем вас это не устраивает? А как вы представляете рисование секторов одним только методом Ellipse?
|