|
#1
|
|||
|
|||
2д графика
кто знает как сделать чтоб 5-ти кутная звезда вращалась вокруг своего центра, помогите пожалуста
|
#2
|
||||
|
||||
блин интересная задачка, решил бы ее но просто пятница...отдых после работы...ну по 50 и все такое...разве что завтра или кто раньше ответит)))
В начале был Бит, потом Байт и только потом появилось Слово... |
#3
|
|||
|
|||
помоги
а хоть подскажи как делать
|
#4
|
|||
|
|||
Да, задачка интересная. Но решается за 15 минут
Во: Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Math; type TForm1 = class(TForm) PaintBox1: TPaintBox; Timer1: TTimer; procedure PaintBox1Paint(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } FAngle : Integer; procedure DrawStar(Angle : Integer); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { TForm1 } procedure TForm1.DrawStar(Angle: Integer); const N = 5; var I : Integer; cx, cy : Integer; u : Integer; r : Integer; x, y : Integer; begin cx := PaintBox1.Width div 2; cy := PaintBox1.Height div 2; r := Min(cx,cy); u := 360 div N; For I := 1 To N+1 Do begin x := Round(r * sin(2*u*I*PI/180 + Angle*PI/180)) + cx; y := Round(r * cos(2*u*I*PI/180 + Angle*PI/180)) + cy; If I = 1 Then PaintBox1.Canvas.MoveTo(x,y) Else PaintBox1.Canvas.LineTo(x,y); end; end; procedure TForm1.PaintBox1Paint(Sender: TObject); begin DrawStar(FAngle); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Inc(FAngle); If FAngle >= 360 Then FAngle := 0; PaintBox1.Repaint; end; procedure TForm1.FormCreate(Sender: TObject); begin FAngle := 0; PaintBox1.Repaint; Timer1.Enabled := True; end; end. |
#5
|
|||
|
|||
а процедура таймера не дописана??????
|
#6
|
|||
|
|||
Ксати, если менять N, то получаются интересные закономерности
Для 3 и 6 - вращается треугольник, для 4 и 8 - квадрат. |
#7
|
|||
|
|||
Цитата:
Случайно стер. Сам догадайся что там должно быть |
#8
|
|||
|
|||
извини но ето не все, там же нету конца
|
#9
|
|||
|
|||
помоги, башка уже не варит, заепался, уже пол дня сижу, сделал что звезда движется по кругу и все
|
#10
|
|||
|
|||
Во первых, первое и последнее китайское предупреждение!
Соблюдаем культуру речи. Во вторых - я тебе дал основное - процедуру, которая рисует звезду, повернутую на некоторый угол относительно центра. А этот угол является параметром этой процедуры. Дальше и сам бы смог бы сообразить, тем более видел, что там в проекте присутствует таймер. |
#11
|
|||
|
|||
не работает
там что цвет пера нада задать?????? |
#12
|
|||
|
|||
извини, просто не могу замучился
|
#13
|
|||
|
|||
У меня все работает. В проекте по умолчанию цвет пера - черный.
Вот на формочке вращается 5ти конечная звезда Там надо проинициализировать FAngle при создании формы. |
#14
|
|||
|
|||
не работает, а почему???????
|
#15
|
|||
|
|||
а как ето сделать?????
|