{"id":4416,"date":"2017-01-13T22:21:29","date_gmt":"2017-01-13T14:21:29","guid":{"rendered":"http:\/\/blog.qdac.cc\/?p=4416"},"modified":"2017-01-14T16:34:31","modified_gmt":"2017-01-14T08:34:31","slug":"fmx%e7%94%bb%e4%b8%aa%e5%9c%88%e5%9c%88%e5%a5%bd%e8%bf%87%e5%b9%b4%ef%bc%9a%e5%9c%a8-fmx-%e4%b8%ad%e7%bb%98%e5%88%b6%e7%8e%af%e5%bd%a2","status":"publish","type":"post","link":"https:\/\/blog.qdac.cc\/?p=4416","title":{"rendered":"[FMX]\u753b\u4e2a\u5708\u5708\u597d\u8fc7\u5e74\uff1a\u5728 FMX \u4e2d\u7ed8\u5236\u73af\u5f62"},"content":{"rendered":"<p>FMX \u7684 Shape \u73b0\u5728\u4e0d\u662f\u5f88\u5168\uff0c\u81f3\u5c11\u6211\u60f3\u627e\u4e00\u4e2a\u5706\u73af\u65f6\u6ca1\u627e\u5230\uff0c\u6240\u4ee5\u81ea\u5df1\u7528\u4ee3\u7801\u5b9e\u73b0\u4e86\u4e00\u4e2a\uff0c\u4f9b\u5927\u5bb6\u53c2\u8003\uff1a<\/p>\n<pre class=\"lang:delphi decode:true\">procedure AddRing(AData: TPathData; const ACenter: TPointF;\r\n  R1, R2, AStartAngle, ASweepAngle: Single);\r\nvar\r\n  A, CA, SA, AEndAngle: Single;\r\nbegin\r\n  A := AStartAngle * PI \/ 180;\r\n  SA := sin(A);\r\n  CA := cos(A);\r\n  AData.MoveTo(PointF(ACenter.X + R1 * CA, ACenter.Y + R1 * SA));\r\n  AData.AddArc(ACenter, PointF(R1, R1), AStartAngle, ASweepAngle);\r\n  AData.MoveTo(PointF(ACenter.X + R1 * CA, ACenter.Y + R1 * SA));\r\n  AData.LineTo(PointF(ACenter.X + R2 * CA, ACenter.Y + R2 * SA));\r\n  AData.AddArc(ACenter, PointF(R2, R2), AStartAngle, ASweepAngle);\r\n  A := (AStartAngle + ASweepAngle) * PI \/ 180;\r\n  SA := sin(A);\r\n  CA := cos(A);\r\n  AData.LineTo(PointF(ACenter.X + R1 * CA, ACenter.Y + R1 * SA));\r\nend;<\/pre>\n<p>\u51fd\u6570\u7684\u53c2\u6570\u8bf4\u660e\uff1a<\/p>\n<ul>\n<li>AData : \u7528\u6765\u4fdd\u5b58\u5706\u73af\u8def\u5f84\u4fe1\u606f<\/li>\n<li>ACenter\uff1a\u4e2d\u5fc3\u70b9\u5750\u6807<\/li>\n<li>R1\uff1a\u5185\u73af\u534a\u5f84<\/li>\n<li>R2\uff1a\u5916\u73af\u534a\u5f84<\/li>\n<li>AStartAngle\uff1a\u73af\u7684\u8d77\u59cb\u89d2\u5ea6<\/li>\n<li>ASweepAngle\uff1a\u73af\u7684\u89d2\u5ea6\u589e\u91cf(\u5939\u89d2\uff09<\/li>\n<\/ul>\n<p>\u793a\u4f8b\uff1a<\/p>\n<pre class=\"lang:delphi decode:true\">procedure TForm1.PaintBox1Paint(Sender: TObject; Canvas: TCanvas);\r\nvar\r\n  AData: TPathData;\r\nbegin\r\n  AData := TPathData.Create;\r\n  try\r\n    AddRing(AData, PaintBox1.LocalRect.CenterPoint, 30, 100, 135, FAngle);\r\n    Canvas.BeginScene();\r\n    Canvas.Fill.Color := TAlphaColors.White;\r\n    Canvas.Fill.Kind := TBrushKind.Solid;\r\n    Canvas.Stroke.Kind := TBrushKind.Solid;\r\n    Canvas.Stroke.Color := TAlphaColors.Red;\r\n    Canvas.FillPath(AData, 1);\r\n    if CheckBox1.IsChecked then\r\n      Canvas.DrawPath(AData, 1);\r\n    Canvas.EndScene;\r\n  finally\r\n    FreeAndNil(AData);\r\n  end;\r\nend;<\/pre>\n<p><a href=\"https:\/\/blog.qdac.cc\/wp-content\/uploads\/2017\/01\/ring.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4417\" src=\"https:\/\/blog.qdac.cc\/wp-content\/uploads\/2017\/01\/ring.gif\" alt=\"\" width=\"274\" height=\"223\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>FMX \u7684 Shape \u73b0\u5728\u4e0d\u662f\u5f88\u5168\uff0c\u81f3 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[145,69,8,603],"tags":[703],"class_list":["post-4416","post","type-post","status-publish","format-standard","hentry","category-android","category-c-builder","category-delphi","category-603","tag-703"],"views":4070,"_links":{"self":[{"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/posts\/4416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4416"}],"version-history":[{"count":2,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/posts\/4416\/revisions"}],"predecessor-version":[{"id":4419,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/posts\/4416\/revisions\/4419"}],"wp:attachment":[{"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}