Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.10.2010, 22:33
weyner weyner вне форума
Прохожий
 
Регистрация: 23.10.2010
Сообщения: 2
Репутация: 10
Восклицание Движение по окружности!)))

Все добрый вечер!) Вот такая вот проблема, я нарисовал фигуру это квадрат в него впасан ром а в ромб вписан круг, но теперь такая проблема я не магу заставить двигаться по окружности всю эту фигуру получаеться все время по диагонали: вот код:
Код:
unit Unit1;

interface

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

type

  TFigure = class
  public
  d,b,c,a,p,x,y,x1,y1,r,size,maxsize: Integer; //òåêóùèå êîîðä. òî÷êè






  Canvas: TCanvas;
  Constructor Create(NewX, NewY,NewSize,NewMaxSize : integer;
                      NewCanvas : TCanvas);

  Procedure Show;
  Procedure Hide;
  Procedure Move;
    destructor destroy; override;

  end;

  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    Label1: TLabel;
    procedure Image1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
  Figure:TFigure;
    { Public declarations }


  end;

var


  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Image1Click(Sender: TObject);
begin

end;

{ TFigure }

constructor TFigure.Create(NewX, NewY, NewSize, NewMaxSize: integer;
  NewCanvas: TCanvas);
begin
 inherited Create;
x:=NewX;
y:=NewY;
y1:=1;
x:=250;
y:=250;
Size:=NewSize;
MaxSize:=NewMaxSize;
Canvas:=NewCanvas;

show;
end;

destructor TFigure.destroy;
begin

hide;  inherited destroy;
end;

procedure TFigure.Hide;

begin
     canvas.Pen.Color:=ClBlack;
 Canvas.Brush.Color:=Clblue;
  canvas.Rectangle(x - (a div 2), y - (a div 2),
                           x + (a div 2), y + (a div 2));

end;

procedure TFigure.Move;
begin

end;

procedure TFigure.Show;
var
  c: array [1..4] of TPoint;
  b: integer; // Äëèíà äèàãîíàëè ðîìáà
  d: integer; // Äëèíà äèàãîíàëè êâàäðàòà è äèàìåòð êðóãà
const
  a = 125;
begin
     canvas.Pen.Color:=ClBlack;
 Canvas.Brush.Color:=Clblue;
  canvas.Rectangle(x - (a div 2), y - (a div 2),
                           x + (a div 2), y + (a div 2));

  d := Round(sqrt(2)*a);
  b := Round(sqrt(2)*d);


  c[1].x := x;
  c[1].y := y + (b div 4);
  c[2].x := x - (b div 4);
  c[2].y := y;
  c[3].x := x;
  c[3].y := y - (b div 4);
  c[4].x := x + (b div 4);
  c[4].y := y;
   canvas.Pen.Color:=ClBlack;
 Canvas.Brush.Color:=Clwhite;
 Canvas.Polygon(c);

 canvas.Pen.Color:=Clblack;              //y,x,y+size ,x+size,//
Canvas.Brush.Color:=Clred;

   //Canvas.ellipse(y,x,y+size ,x+size);
   Canvas.ellipse(x-(d div 4), y - (d div 4),x + (d div 4), y+(d div 4) );
end;

procedure TForm1.FormCreate(Sender: TObject);
begin



 Figure:=TFigure.Create(Image1.ClientWidth div 8,
  Image1.ClientWidth div 4,
  Image1.ClientWidth div 2 ,
  Image1.ClientWidth,
  Image1.Canvas);
end;

end.
то что выделено красным и жирным туда надо записать это движение по окружности!!!! Это весь код программы!))
Ответить с цитированием
  #2  
Старый 23.10.2010, 22:45
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Был-бы я модератором, я бы вам за этот вопрос бан влупил. Вы бы хоть потрудились поиск по форуму сделать с тем-же вопросом.
http://www.delphisources.ru/forum/sh...ED%EE%F1%F2%E8
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 23.10.2010, 22:50
weyner weyner вне форума
Прохожий
 
Регистрация: 23.10.2010
Сообщения: 2
Репутация: 10
По умолчанию

но вы не модер так что не возмушайтесь! темболее я эт тему смотрел там про ромб расказываеться что его рисуют линиями лайнто и мув то я зделал это иначе и легче а вот движение е...ое
Ответить с цитированием
  #4  
Старый 24.10.2010, 00:46
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

ой, мне кажется, г-н Imikle будет недоволен...

weyner, чё ж тебе, не пересчитать по формуле движения координаты под свою мега-круто нарисованную фигуру?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter