Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анимация вращения треугольника 
V
    Опции темы
SnowSin
Дата 8.12.2009, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



Есть ли у кого программа вращения треугольника?) мб осталась у кого с годов обучения, а то в Делфи вроде шарю,но как доходит до рисования провал полный...
PM MAIL   Вверх
Alexeis
Дата 8.12.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  p : array[0..2] of TPoint = ((x: -20; y: -30),
                               (x:  20; y: -30),
                               (x:  20; y: 30));

  r : TRect = (Left: 0; Top: 0; Right: 100; Bottom: 100);
  a : integer;


procedure TForm1.FormCreate(Sender: TObject);
begin
  a := 0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  InvalidateRect(Handle, @r, true);
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  i  : integer;
  p2 : array[0..2] of TPoint;
  s, c : double;
begin
  ValidateRect(Canvas.Handle, @r);
  PatBlt(Canvas.Handle, 0, 0, 100, 100, WHITENESS);
  a := (a + 10) mod 360;
  s := sin(a * Pi / 180);
  c := cos(a * Pi / 180);
  for i := 0 to 2
  do
    begin
      p2[i].X := 50 + Round(p[i].X * c + p[i].Y * s);
      p2[i].Y := 50 + Round(p[i].X * s - p[i].Y * c);
    end;

  Canvas.MoveTo(p2[2].X, p2[2].Y);
  for i := 0 to 2
  do
    Canvas.LineTo(p2[i].X, p2[i].Y);
end;

procedure TForm1.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
  inherited;
 // Message.Result := 0;
end;



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
SnowSin
Дата 8.12.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



Спасибо большое)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.