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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.04.2009, 19:41
morkovka morkovka вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 14
Репутация: 10
Смущение SOS

пожалуйста помогите с задачей!!!Изобразить круг,разбитый на 16 Секторов,чтобы каждый сектор менял через две секунды цвет!плиз!!!
Ответить с цитированием
  #2  
Старый 19.04.2009, 19:43
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Круг какого радиуса? Сектора равные, или заданные пользователем? ли взятые случайно? Цвета откуда берутся (случайные или из массива, и как должны менятся)?

Учись правильно ставить задачу.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 19.04.2009, 19:53
morkovka morkovka вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 14
Репутация: 10
По умолчанию

пардон, я все же новичок не ругайтесь на меня, пожалуйста...мне стыдно...
радиус любой можно взять, сектора равные, а цвета в любом порядке.
Ответить с цитированием
  #4  
Старый 19.04.2009, 22:33
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Вот. На форме компонент TTimer и TImage с равными шириной и высотой.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    Angle: Real;
    CircleRect: TRect;
  public
    { Public declarations }
    SectorCount: Word;
    Radius: Integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  SectorCount := 16; // вот здесь задаётся количество секторов
  Radius := 100; // а здесь — радиус круга
  Angle := 2 * Pi / SectorCount;
  CircleRect := Rect(Image1.Width div 2 - Radius, Image1.Height div 2 - Radius,
                     Image1.Width div 2 + Radius, Image1.Height div 2 + Radius);
  Randomize();
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: Byte;
  X_1, X_2, Y_1, Y_2: Real;
  CurAngle: Real;
begin
  X_1 := Image1.Width / 2 + Radius; Y_1 := Image1.Height / 2;
  CurAngle := Angle;
  for i := 1 to SectorCount do
  begin
    Image1.Canvas.Brush.Color := Random($00FFFFFF);
    X_2 := Radius * Cos(CurAngle) + Image1.Width / 2;
    Y_2 := Image1.Height / 2 - Radius * Sin(CurAngle);
    Image1.Canvas.Pie(CircleRect.Left, CircleRect.Top, CircleRect.Bottom,
                      CircleRect.Right, Round(X_1), Round(Y_1), Round(X_2),
                      Round(Y_2));
    X_1 := X_2; Y_1 := Y_2;
    CurAngle := CurAngle + Angle;
  end;
end;

end.
P.S. Цвета секторов генерируются случайно.

Последний раз редактировалось Nyctos Kasignete, 19.04.2009 в 23:44.
Ответить с цитированием
  #5  
Старый 27.04.2009, 20:49
morkovka morkovka вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 14
Репутация: 10
По умолчанию а вот еще вопрос...

а можно это как-то через ellipse???пожалуйста помогите, а то мозг уже взрывается от программирования...
Ответить с цитированием
  #6  
Старый 27.04.2009, 21:11
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

morkovka, ну вообще-то именно метод Pie предназначен для рисования секторов... Чем вас это не устраивает? А как вы представляете рисование секторов одним только методом Ellipse?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter