gpt4 book ai didi

delphi - 如何在Delphi中创建一个五边形形状?

转载 作者:行者123 更新时间:2023-12-02 02:58:29 24 4
gpt4 key购买 nike

我正在尝试在 Delphi 中创建一个五边形形状的表单,但我无法按照正确的顺序绘制点,因此表单不断变形。

procedure TfrmPoligono.FormCreate(Sender: TObject);
var
_Region: hRgn;

_Tip,
_MostLeft,
_MostRight,
_BottomLeft,
_BottomRight: TPoint;
begin
// fRegionPoints: array[0..4] of TPoint declared on the private section

_Tip.X := 600;
_Tip.Y := 0;

_MostLeft.X := 100;
_MostLeft.Y := 0;

_MostRight.X := 1100;
_MostRight.Y := 300;

_BottomLeft.X := 200;
_BottomLeft.Y := 700;

_BottomRight.X := 1000;
_BottomRight.Y := 700;

fRegionPoints[0] := _Tip;
fRegionPoints[1] := _MostLeft;
fRegionPoints[2] := _MostRight;
fRegionPoints[3] := _BottomLeft;
fRegionPoints[4] := _BottomRight;

_Region := CreatePolygonRgn(fRegionPoints[0], Length(fRegionPoints), ALTERNATE);

SetWindowRgn(Handle, _Region, True);
end;

如您所见,我按照从上到下、从左到右的逻辑顺序添加了 TPoint。但是我尝试了其他配置但没有成功。

我做错了什么?

最佳答案

当您在计算机中指定多边形形状时,您指定顶点的顺序与使用铅笔在纸上绘制多边形时的顺序相同:顺时针或逆时针。在您的情况下,选择逆时针方向,

fRegionPoints[0] := _Tip;
fRegionPoints[1] := _MostLeft;
fRegionPoints[2] := _BottomLeft;
fRegionPoints[3] := _BottomRight;
fRegionPoints[4] := _MostRight;

关于delphi - 如何在Delphi中创建一个五边形形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60552076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com