Исходники и листинги ::: Delphi ::: Рисуем звезды!

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
  unit Stars_;
 
  interface
 
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;
 
  type
    TForm1 = class(TForm)
      procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
 
  var
    Form1: TForm1;
 
  implementation
 
  {$R *.dfm}
 
  procedure StarLine(x0,y0,r: integer; Canvas: TCanvas);
      // x0,y0 - координаты центра звезды
      // r - радиус звезды
  var
      p : array[1..11] of TPoint; // массив координат лучей и впадин
      a: integer;   // угол между осью ОХ и прямой, соединяющей
                    // центр звезды и конец луча или впадину
      i: integer;
  begin
      a := 18; // строим от правого гор. луча
      for i:=1 to 10 do
         begin
            if (i mod 2 = 0) then
               begin // впадина
                 p[i].x := x0+Round(r/2*cos(a*2*pi/360));
                 p[i].y:=y0-Round(r/2*sin(a*2*pi/360));
               end
            else
               begin // луч
                 p[i].x:=x0+Round(r*cos(a*2*pi/360));
                 p[i].y:=y0-Round(r*sin(a*2*pi/360));
               end;
            a := a+36;
 
         end;
 
      p[11].X := p[1].X; // чтобы замкнуть контур звезды
      p[11].Y := p[1].Y;
 
      Canvas.Polyline(p); // начертить звезду
  end;
 
  // нажатие кнопки мыши
  procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
                                 Shift: TShiftState; X, Y: Integer);
  begin
    if Button = mbLeft  // нажата левая кнопка?
       then Form1.Canvas.Pen.Color := clBlack
       else Form1.Canvas.Pen.Color := clRed;
    StarLine(x, y, 30,Form1.Canvas);
  end;
 
  end.
<<< Предыдущая работа

Вернуться в галерею исходников
Рисуем звезды!
Автор: Nerevarin*
Город: Новочебоксарск
Дата: 23.01.2007  18:04
Комментариев: 4
Просмотров: 339
Оценка: 0 (0|0|0|0|0) [0]

Вернуться на главную
Авторский комментарий к работе: готовая программа лежит в программировании
Вы не можете оценивать

КОММЕНТАРИИ К РАБОТЕ:
алинушка ::: комментарий от 01.02.2008 | 17:41
  Дух (ур.1)
Очки: 28
Город: северск
Тв. работ: 0
Рег: 01.02.2008 (6820)
оьбъсните плиз как запустить
Boland* ::: комментарий от 22.04.2007 | 11:54
Boland Приверженец (ур.6)
Очки: 540
Город: Томск
Тв. работ: 7
Рег: 05.05.2006 (81)
Довольно таки интересно...


--------------------
Мысль изречённая,есть ложь.
Nerevarin* ::: комментарий от 26.01.2007 | 19:17
Nerevarin Наставник (ур.16)
Очки: 21560
Город: Новочебоксарск
Тв. работ: 119
Рег: 07.10.2006 (1013)
Ответ для DaniilKhanin 26.01.2007 | 16:50:

Отличная идея !Спасибо.


--------------------
Моя совесть чиста-я ей не пользуюсь!
DaniilKhanin ::: комментарий от 26.01.2007 | 16:50
  Инструктор (ур.15)
Очки: 19261
Город:
Тв. работ: 0
Рег: 07.11.2006 (1378)
так теперь чтобы твоя программа была не просто так фигней, сделай окошко позволяющее менять число лучей у звезды. и ваще супер.... можно приступать к созданию векторного редактора.