Цитата:
Сообщение от NumLock
SetWorldTransform | ModifyWorldTransform
|
Спасибо. Погуглил-разобрался
Использую данную процедуру
Код:
procedure CueDraw(ACnv: TCanvas; const X1, Y1, X2, Y2, AAngle: Integer);
var NewF, OldF: TXForm;
begin
form1.Canvas.Pen.Color:=clBlack;
form1.Canvas.Brush.Color:=clYellow;
SetGraphicsMode(ACnv.Handle, GM_Advanced);
GetWorldTransform(ACnv.Handle, OldF);
with NewF do begin
eM11 := 1 * Cos(AAngle / 360 * Pi * 2);
eM22 := 1 * Cos(AAngle / 360 * Pi * 2);
eM12 := 1 * Sin(AAngle / 360 * Pi * 2);
eM21 := 1 * -Sin(AAngle / 360 * Pi * 2);
eDX := Round((X1 + X2) / 2);
eDY := Round((Y1 + Y2) / 2);
end;
ModifyWorldTransform(ACnv.Handle, NewF, MWT_LEFTMULTIPLY);
ACnv.Ellipse(X1, Y1, X2, Y2);
SetWorldTransform(ACnv.Handle, OldF);
end;
Однако "кий" (элипс) вращается вокруг очень большой точки, мне бы ее снизить до размеров "шара". Попробовал поковырять процедуру, но ничего дельного не вышло. Как поправить?