如何绘制一个有两个圆角且对角是矩形角的矩形。该形状必须闭合,以便可以用画笔颜色填充。 Polyline 方法不绘制曲线。我可以将圆弧的点添加到折线点吗?我尝试使用 Canvas 方法绘制一个 RoundRect,然后在下圆角上重叠一个矩形,但是当只绘制形状的边框而不填充它时,我不知道如何删除矩形的上线。注意:如果您认为相关,我可以添加我使用的代码。
所需形状的示例:
我用 Delphi 得到的示例:
最佳答案
您不必在绘制形状的同时填充它。您可以首先使用一系列 TCanvas.LineTo()
和 TCanvas.ArcTo()
/TCanvas.AngleArc()
调用来创建形状,然后调用TCanvas.FloodFill()
来填充它。
否则,您可以使用相同的填充颜色将 TCanvas.Rectangle()
重叠在 TCanvas.RoundRect()
之上,然后使用 TCanvas.MoveTo ()
/TCanvas.LineTo()
以相同的填充颜色在分割线上绘制。
另一种选择是忘记使用 TCanvas
绘图方法,而只使用 Win32 API 调用。使用 CreateRoundRectRgn()
、CreateRectRgn()
和 CombineRn()
创建具有所需形状的 HRGN
,然后使用 FillRgn()
和 FrameRgn()
使用该 HRGN
在您的 TCanvas
上绘图。
关于Delphi绘制一个有两个圆角和直角的封闭矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30337605/