Текущий архив: 2005.10.02;
Скачать: CL | DM;
Вниз
Вращение Найти похожие ветки
← →
student2 (2004-11-27 15:48) [0]Как создать компонент - наследник TGraphicControl, чтобы на нем происходило вращение фигуры (например линии)????? Затруднение составляет именно в перерисовке фигуры (линии). Т.е. линия рисуется в процедуре OnPaint, но после прорисовки начального состояния нужно изменить её координаты, и снова запустить данную процедуру - никак не соображу как это зделать...
← →
antonn © (2004-11-27 17:21) [1]линию можно завращать используя полярные координаты. Те обычные перевести. Нечто есть в компоненте TKnob (KNOB.PAS)
← →
Student2 (2004-11-27 17:34) [2]А где можно найти этот компонентик????
← →
antonn © (2004-11-28 17:29) [3]идет в комплекте с TBassplayer. А вообще есть http://www.torry.net/ и yandex.ru
← →
_student (2004-11-28 20:32) [4]
unit RotLine;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, mmsystem, ComCtrls;
type
TMyLine = class(TImage)
t: ttimer;
constructor Create(AOwner: TComponent); override;
private
procedure MyTimer(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
procedure Register;
implementation
var i: integer;
procedure Register;
begin
RegisterComponents("MyLine", [TMyLine]);
end;
constructor TMyLine.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
t := TTimer.Create(self);
t.OnTimer := MyTimer;
t.Interval := 1;
t.Enabled := true;
Width := 200;
height := 200;
i := 0;
end;
procedure tmyline.MyTimer(Sender: TObject);
var x, y: integer;
begin
inc(i);
if i >= 360 then i := 0;
x := round(100 * sin(i * pi / 180)) + 100;
y := round(100 * cos(i * pi / 180)) + 100;
Canvas.Brush.Color := clBtnFace;
canvas.fillrect(rect(0, 0, width, height));
Canvas.Brush.Color := clblack;
Canvas.MoveTo(100, 100);
Canvas.LineTo(x, y);
x := round(100 * sin((i + 180) * pi / 180)) + 100;
y := round(100 * cos((i + 180) * pi / 180)) + 100;
Canvas.MoveTo(100, 100);
Canvas.LineTo(x, y);
end;
end.
Страницы: 1 вся ветка
Текущий архив: 2005.10.02;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.042 c