如何画一个扇形,并可以填充颜色?(向扇形填充) RT,谢谢大家! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HRGN你知道吗?个你些api函数,通过这些东西就可以CombineRgnCreateEllipticRgnCreateEllipticRgnIndirectCreatePolygonRgnCreatePolyPolygonRgnCreateRectRgnCreateRectRgnIndirectCreateRoundRectRgnEqualRgnExtCreateRegionFillRgnFrameRgnGetPolyFillModeGetRegionDataGetRgnBoxInvertRgnOffsetRgnPaintRgnPtInRegionRectInRegionSetPolyFillMode Maybe Can use Canvas.Pie 例子我也没有我跟你简单说一下吧,rgn是一种区域,CreateEllipticRgn创建椭圆区域,CreatePolygonRgn创建多边形区域,CreateRoundRectRgn创建矩形的内切圆或椭圆CombineRgn 可以对两个区域进行 并,与,减等操作FillRgn可以在区域里填充颜色你可以先建一个圆rgn1通过CombineRgn把它割去一块rgn2,然后建一个三角rgn3,在把rgn3和rgn2合并起来就一个扇形,再用fillrgn填上颜色就可以了 procedure TForm1.Button1Click(Sender: TObject);var x, y : Integer; angle : Double; i : Integer;begin angle := 60/90*pi/2 / 160; Canvas.Brush.Color := clRed; Canvas.Pie(-512, -512, 512, 512, Round(512 * cos(angle * 160)), Round(512 * sin(angle * 160)), 0, 0); for i := 1 to 160 do begin y := Round(512 * sin(angle * i)); x := Round(512 * cos(angle * i)); Canvas.MoveTo(0, 0); Canvas.LineTo(x, y); end;end; Delphi的Demo\propEdit下有个画扇形的控件 关于DBChart的现实问题 一个报错. 菜鸟问问题:delphi默认初始化问题 如何解决拔号传输数据的问题 [求助]关于RadioGroup [小弟没分了,抱歉!] 哪里可以找到QReport的帮助,最好是中文的? 急!!!哪位大侠告诉我关于opengl的一个问题? 多线程定时重复创建的问题 如何利用循环一次给所有mdichild窗口中的text框赋值?up有分! 如何模拟DEL键效果? 多线程与ADO 要去的一个公司用DELPH,我从来没接触过,要多常时间可以大概学会?(up及无意义发言无分)
CombineRgn
CreateEllipticRgn
CreateEllipticRgnIndirect
CreatePolygonRgn
CreatePolyPolygonRgn
CreateRectRgn
CreateRectRgnIndirect
CreateRoundRectRgn
EqualRgn
ExtCreateRegion
FillRgn
FrameRgn
GetPolyFillMode
GetRegionData
GetRgnBox
InvertRgn
OffsetRgn
PaintRgn
PtInRegion
RectInRegion
SetPolyFillMode
CombineRgn 可以对两个区域进行 并,与,减等操作FillRgn可以在区域里填充颜色你可以先建一个圆rgn1通过CombineRgn把它割去一块rgn2,然后建一个三角rgn3,在把rgn3和rgn2合并起来就一个扇形,再用fillrgn填上颜色就可以了
var
x, y : Integer;
angle : Double;
i : Integer;
begin
angle := 60/90*pi/2 / 160;
Canvas.Brush.Color := clRed;
Canvas.Pie(-512, -512, 512, 512, Round(512 * cos(angle * 160)),
Round(512 * sin(angle * 160)), 0, 0);
for i := 1 to 160 do
begin
y := Round(512 * sin(angle * i));
x := Round(512 * cos(angle * i));
Canvas.MoveTo(0, 0);
Canvas.LineTo(x, y);
end;
end;