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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2009, 15:00   #1
meradone
 
Аватар для meradone
 
Регистрация: 16.11.2009
Сообщений: 4
По умолчанию Аффинные преобразования

Нужно реализовать аффинные преобразования в Delphi.
Зеркальное отображение и переворот я вроде как сделал. Вот остальное даже и не догадываюсь как сделать. Помогите с растягиванием фигур...
Вот что я на кодил с горем пополам:
Button1Click - зеркальное отображение;
Button2Click - переворот;
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  X, Y: Integer;
  SrcRect, DstRect: TRect;
begin
  x := PaintBox1.Width;
  Y := PaintBox1.Height;
  SrcRect := Rect(-1, -1, X, Y);
  DstRect := Rect(X, -1, -1, Y);
  PaintBox1.Canvas.CopyRect(DstRect, PaintBox1.Canvas, SrcRect);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  X, Y: Integer;
  SrcRect, DstRect: TRect;
begin
  x := PaintBox1.Width;
  Y := PaintBox1.Height;
  SrcRect := Rect(-1, -1, X, Y);
  DstRect := Rect(-1, Y, X, -1);
  PaintBox1.Canvas.CopyRect(DstRect, PaintBox1.Canvas, SrcRect);
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  PaintBox1.Canvas.LineTo(100,150);
end;

end.

Последний раз редактировалось Stilet; 23.11.2009 в 10:14.
meradone вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
системы счисления(преобразования) vitaly38 Помощь студентам 22 19.10.2009 22:42
геомГетрические преобразования на плоскости netbioz Паскаль, Turbo Pascal, PascalABC.NET 6 02.06.2009 01:50
трехмерные фигуры и их преобразования. Klyan Паскаль, Turbo Pascal, PascalABC.NET 1 30.04.2009 18:42
Преобразования Pascal в Delphi non1ka Помощь студентам 21 05.06.2008 12:54