加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[修复] Firemonkey 使用 DrawPath 断线问题(Android & iOS

发布时间:2020-12-15 04:37:33 所属栏目:大数据 来源:网络整理
导读:使用 Canvas.DrawPath 绘制时,最后一点无法画到终点位置。 适用:Delphi 10 Seattle (或更早的版本) for Android iOS 修复方法: 请将源码 FMX.StrokeBuilder.pas复制到自己的工程目录里,再进行修改。 TStrokeBuilder.BuildSolidPolygon( Points: TPolyg

使用 Canvas.DrawPath 绘制时,最后一点无法画到终点位置。

适用:Delphi 10 Seattle (或更早的版本) for Android & iOS

修复方法:

请将源码 FMX.StrokeBuilder.pas复制到自己的工程目录里,再进行修改。

TStrokeBuilder.BuildSolidPolygon( Points: TPolygon; ...略...

<span style="color: #0000ff;">while CurIndex < Length(Points) <span style="color: #0000ff;">do
<span style="color: #0000ff;">begin
<span style="color: #0000ff;">if (CurIndex >= Length(Points) - <span style="color: #800080;">1) <span style="color: #0000ff;">and BreakAtEnd <span style="color: #0000ff;">and (Points[<span style="color: #800080;">0] <> Points[Length(Points) - <span style="color: #800080;">1]) <span style="color: #0000ff;">then
<span style="color: #008000;">{<span style="color: #008000;">--->删除这行 Break;<span style="color: #008000;">}
<span style="color: #008000;">{<span style="color: #008000;">+++>新增代码<span style="color: #008000;">}
<span style="color: #008000;">//<span style="color: #008000;"> 修复曲线最后一点断线的问题 by Aone (2016/03/25)
<span style="color: #0000ff;">begin<span style="color: #000000;">
PieceDirVec := (DestPos -<span style="color: #000000;"> SrcPos).Normalize;
ThickPerp := TPointF.<span style="color: #0000ff;">Create(-PieceDirVec.Y,PieceDirVec.X) *<span style="color: #000000;"> FHalfThickness;

  InsertVertex(DestPos </span>-<span style="color: #000000;"&gt; ThickPerp,FStrokeColor);
  InsertVertex(DestPos </span>+<span style="color: #000000;"&gt; ThickPerp,FStrokeColor);

  </span><span style="color: #0000ff;"&gt;if</span> PrevVerticesPlaced <span style="color: #0000ff;"&gt;then</span>
  <span style="color: #0000ff;"&gt;begin</span><span style="color: #000000;"&gt;
    InsertIndex(FCurrentVertex </span>- <span style="color: #800080;"&gt;3</span><span style="color: #000000;"&gt;);
    InsertIndex(FCurrentVertex </span>- <span style="color: #800080;"&gt;1</span><span style="color: #000000;"&gt;);
    InsertIndex(FCurrentVertex </span>- <span style="color: #800080;"&gt;2</span><span style="color: #000000;"&gt;);

    InsertIndex(FCurrentVertex </span>- <span style="color: #800080;"&gt;2</span><span style="color: #000000;"&gt;);
    InsertIndex(FCurrentVertex </span>- <span style="color: #800080;"&gt;4</span><span style="color: #000000;"&gt;);
    InsertIndex(FCurrentVertex </span>- <span style="color: #800080;"&gt;3</span><span style="color: #000000;"&gt;);
  </span><span style="color: #0000ff;"&gt;end</span><span style="color: #000000;"&gt;;

  Break;
</span><span style="color: #0000ff;"&gt;end</span><span style="color: #000000;"&gt;;

<span style="color: #008000;">{<span style="color: #008000;"><+++<span style="color: #008000;">}<span style="color: #000000;">

...略...

<span style="color: #0000ff;">end;

效果:

RSP-14309: [iOS & Android] Delphi 10.1 Berlin - drawing problems

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读