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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.04.2009, 18:38   #1
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию Задача по Delphi 7. Графика на основе Канвы

Солнце с 10 лучами вращается против часовой стрелки с дискретом 10^0/сек. Длина цикла 30 сек. Запуск движения – команда контекстного меню.

Я никак не могу додуматься, как её решить! С графикой в Delphi я не знаком.

Последний раз редактировалось StudentMarat; 01.04.2009 в 18:42.
StudentMarat вне форума
Старый 10.04.2009, 17:03   #2
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Уже решил. Вот сам код, может кому-нибудь пригодиться.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i,x,y,z: integer;
begin
  Label1.Caption := IntToStr(0);
  Label2.Caption := IntToStr(0);
  Label3.Caption := IntToStr(0);
  Label4.Caption := IntToStr(0);
  x := StrToInt(Label1.Caption);
  y := StrToInt(Label2.Caption);
  z := StrToInt(Label4.Caption);

  Image1.Canvas.Pen.Color := clRed;
  For i := 1 to 10 do begin
    Image1.Canvas.PolyLine([Point(150+Trunc(125*Cos(2*i*Pi/10-z/360)-x), 150-Trunc(125*Sin(i*2*Pi/10-z/360)-x)), Point(150, 150)]);
  end;
  Image1.Canvas.Pen.Color := clYellow;
  Image1.Canvas.Brush.Color := clYellow;
  Image1.Canvas.Pie(50, 50, 250, 250, 0, 0, 0, 0);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i,x,y,z: integer;
begin
  x := StrToInt(Label1.Caption);
  y := StrToInt(Label2.Caption);
  z := StrToInt(Label4.Caption);

  Image1.Canvas.Pen.Color := clWhite;
  For i := 1 to 10 do begin
    Image1.Canvas.PolyLine([Point(150+Trunc(125*Cos(2*i*Pi/10-(z+1)/360)-y), 150-Trunc(125*Sin(2*i*Pi/10-(z+1)/360)-y)), Point(150, 150)]);
  end;
  Image1.Canvas.Pen.Color := clRed;
  For i := 1 to 10 do begin
    Image1.Canvas.PolyLine([Point(150+Trunc(125*Cos(2*i*Pi/10-z/360)-x), 150-Trunc(125*Sin(i*2*Pi/10-z/360)-x)), Point(150, 150)]);
  end;

  Image1.Canvas.Pen.Color := clYellow;
  Image1.Canvas.Brush.Color := clYellow;
  Image1.Canvas.Pie(50, 50, 250, 250, 0, 0, 0, 0);
  Label4.Caption := IntToStr(z-1);

  



end;

procedure TForm1.N1Click(Sender: TObject);
begin
  Timer1.Enabled := True;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
  Timer1.Enabled := False;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
  Close;
end;

end.

Запуск на движение производиться с помощью контекстного меню.

Также вот и сам проект
Вложения
Тип файла: rar v4.rar (167.2 Кб, 65 просмотров)

Последний раз редактировалось Stilet; 10.04.2009 в 17:16.
StudentMarat вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перерисовка канвы Bayazet Общие вопросы Delphi 14 27.01.2009 16:02
Аналогия канвы для команды в паскале Zerony Мультимедиа в Delphi 1 14.01.2009 12:32
Отображение графика в Delphi Desc Помощь студентам 9 12.05.2008 11:28
Как распечатать содержимое канвы Image? ffo Помощь студентам 1 15.03.2007 20:07