将一组按钮排列成一个圆形的算法怎么写?

问答知识库用户 |浏览279次
收藏|2014/05/17 21:59
如题

满意回答

2014/05/17 21:59

var
  FCenterX, FCenterY: Single;
  FRoundR: Single;
  FRadian: Single;
  FNewPoint: TvgPoint;
  I: Integer;
  FDeskTopLink: TDeskTopLink;
begin
  FCenterX := Screen.Width / 2;
  FCenterY := Screen.Height / 2;
  FRoundR := FCenterY;
  if XRadius > FRoundR then XRadius := FRoundR;
  with FLinkList.LockList do
  try
    if (IcoCount <> 0) and (IcoCount < Count) then
    begin
      FRadian := 2 * 3.1415926 / IcoCount;
      for I := 0 to IcoCount - 1 do
      begin
        FDeskTopLink := Items[I];
        FNewPoint.X := FCenterX + XRadius * Sin(i * FRadian);
        FNewPoint.Y := FCenterY + XRadius * Cos(i * FRadian);
        FDeskTopLink.Position.Point := FNewPoint;
      end;
    end;
  finally
    FLinkList.UnlockList;
  end;
end;

热心网友

其他回答(0)
0人关注该问题
待解决问题



+1
 加载中...